環境:VS2013+MVC5+IIS EXPRESS 問題:如果從Asp.net Web遷移到MVC,可能會遇到需要使原來的鏈接(如http://localhost:12345/old/library.html)可以繼續訪問的情況,而預設情況下,MVC對於html尾碼是不經過路由的,直接給你一個40 ...
環境: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> 這樣確實好用!我在用<modules runAllManagedModulesForAllRequests="true" />時,調試時發現自己定義的繼承自RouteBase的路由,會多執行一次,還在想為什麼呢,這應該就是所增加的流量請求!