gpt4 book ai didi

asp.net-mvc - asp.net mvc没有收到带有句点的GET请求

转载 作者:行者123 更新时间:2023-12-04 07:41:23 25 4
gpt4 key购买 nike

我在MVC4.0rc中使用.net4.5rc

下面的代码取自MVC webapi应用程序,但对于reular asp.net mvc,我也有相同的行为

我的registerroutes代码看起来像这样

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapHttpRoute(
name: "R1",
routeTemplate: "product/{id}",
defaults: new {
controller="Product",
id = RouteParameter.Optional

}
);

这对没有句号的Id很好用。但是,当我索要带有句号的产品时,调用似乎无法到达ASP.NET

当我在类似帖子中建议使用以下设置时,当尾随/
但是没有它是行不通的

总之
http://mysite.com/product/AZ0     //works
http://mysite.com/product/AZ.0/ //work with relaxedUrlToFileSystemMapping
http://mysite.com/product/AZ.0 //does not work

响应为404,我想这是由IIS返回的,而没有涉及ASP.NET。
当我使用上面的最后一个URL运行routedebugger时,我什至没有得到routedebugger的东西

当存在带有模式的URL时,如何使IIS将控件传递给ASP.NET:
mysite.com/product/{id},无论ID中是否有句点。

谢谢。

最佳答案

让我自己回答这个问题。添加URL重写可以解决此问题。
如果URL的格式为(product/。),则下面添加到web.config中的代码告诉您用后缀“/”重写Url,然后不再将其作为文件处理,而是作为常规MVC处理。

  <system.webServer>
....
<rewrite>
<rules>
<rule name="Add trailing slash" stopProcessing="true">
<match url="(product/.*\..*[^/])$" />
<action type="Rewrite" url="{R:1}/" />
</rule>
</rules>
</rewrite>
</system.webServer>

关于asp.net-mvc - asp.net mvc没有收到带有句点的GET请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720387/

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