环境:VS2013+MVC5+IIS EXPRESS
问题:如果从Asp.net Web迁移到MVC,可能会遇到需要使原来的链接(如http://localhost:12345/old/library.html)可以继续访问,并且把原来的链接定位到新的Action的情况,而默认情况下,MVC对于html后缀是不经过路由的,直接给你一个404错误(未找到)
解决:在web.config里添加
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
最佳:
多谢白云随风的方案:
不建议这样设置runAllManagedModulesForAllRequests="true"
,这样会增加 流量请求.
这么设置
<handlers>
<add name="html_PageHandlerFactory" path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>
,这样会增加 流量请求.
这么设置
<handlers>
<add name="html_PageHandlerFactory" path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>
这样确实好用!我在用<modules runAllManagedModulesForAllRequests="true" />时,调试时发现自己定义的继承自RouteBase的路由,会多执行一次,还在想为什么呢,这应该就是所增加的流量请求!