gpt4 book ai didi

c# - ASP.NET MVC 5、IIS Express 8 - 未达到索引

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:19 24 4
gpt4 key购买 nike

我用 Index 方法得到了一个 Controller (名为 DeficienciesController)

public ActionResult Index(int? deficiencyReviewId)
{
return View();
}

但是当我在 IIS Express 8 中本地运行应用程序时,它不会点击 Index 方法,而是获得状态代码 301,并且浏览器将/添加到 url。

奇怪的是,当我将网站发布到网络服务器时,它运行得非常好..使用 Html.ActionLink 时,a 标记如下所示:

<a href="/Deficiencies">Deficiencies</a>

所以我希望它链接到: http://localhost:49440/Deficiencies

但当我单击它时,它会变为: http://localhost:49440/Deficiencies/

IIS 给我一个“HTTP 错误 403.14 - 禁止访问”页面,因为它正在尝试浏览文件夹内容。 Controller 操作未被​​调用。

如果我将属性路由添加到 Controller 和操作,一切正常,Html.ActionLink 找到正确的路由,但这不是我想要的。

我的 RouteConfig 看起来像这样:

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapMvcAttributeRoutes();

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
}

Index 操作是 Controller 中唯一不工作的操作,其他操作工作得很好。

编辑:

我希望我能返回解决方案,但我唯一可行的解​​决方案是将项目从源代码管理拉到新位置,然后删除操作中的 int 值。然后索引页面工作了.. 然后我做了一个新的 Action ,它接受了 deficiencyReviewId int.. 所以我真的没有发现问题是什么,但它一定是我电脑的本地问题,因为我的同事得到了它工作..

最佳答案

在您的 route 您设置了 id=UrlParameter.Optional 但您使用的是 deficiencyReviewId。当您请求 /deficiencies 时,它实际上期望:/deficiencies?deficiencyReviewId= 具有 int? 值。

你可以有这样的方法签名:

public ActionResult Index(int? deficiencyReviewId = null)

现在 deficiencyReviewId 是一个可选参数,因此 /deficiency 将命中您的 Index 方法

然后删除结尾的斜杠,将其添加到您的 web.config

<rewrite>
<rules>

<!--To always remove trailing slash from the URL-->
<rule name="Remove trailing slash" stopProcessing="true">
<match url="(.*)/$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{R:1}" />
</rule>

</rules>
</rewrite>

关于c# - ASP.NET MVC 5、IIS Express 8 - 未达到索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28875173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com