Asp.netMVC中地址后缀使用.html,jsp等404错误解决
asp.net mvc 默认的地址路径url都是没有后缀的比如 www.a.com/aa/bb 等
如果要是www.a.com/aa/bb.html需要专门写路由。
根据我之前的经验,mvc的路由是相当灵活强大,html等其后缀只是路由路径的一部分,仅仅是没有语法含义的字符串,只要定义如下就可以:
routes.MapRoute( "newsInfo", // 动态新闻详细 "news/{id}.html", // 带有参数的 URL new { controller = "News", action = "News", id = UrlParameter.Optional }, new { id = @"\d{1,8}" }// 参数默认值 );
我在之前的项目中发现,这样定义也是可以。程序运行正常的。
但是今天新建了一个项目,当我定义html后缀的时候就报404错误,非常奇怪。后来找到了两个解决办法,其中任何一个都行
1.在config中添加这个节点就可以
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
2,在iis中添加处理程序映射
把红线的默认字符串输入就行。名称随意
这个两个方法都可以解决404的问题。
但是也有同事反映项目代码中方法1的配置节点也不行,还的需要在iis中配置方法2