1. 程式人生 > >MVC路由配置,偽靜態。

MVC路由配置,偽靜態。

name 分享 mapr onf pmod 程序 als 驗證 nal

前段時間,研究了一下mvc路由配置偽靜態,在網上扒了很多最後還是行不通,所以我現在把這些心得整理出來,供大家分享:

1、mvc中默認路由配置是:http://localhost:24409/Home/Index

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

2、如果要設置成以 .html結尾頁面的頁面,必須要從新配置路由。

第一步:

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

最後按F5啟動項目,瀏覽器中輸入地址 http://localhost:24409/Home/Index

還是報錯:

技術分享圖片

第二步:Webconfig文件中找到system.webServer節點下面的 modules節點、runAllManagedModulesForAllRequests值並設置value=true;

技術分享圖片

最後再重新啟動項目,發現成功了。

技術分享圖片

總結:1、由於路由配置文件中設置的路由,是html結尾的靜態頁面文件,所以導致程序不會去處理靜態文件(.html .css .js .jpeg等)的請求了。如果你將runAllManagedModulesForAllRequests設置為true,那麽ASP.NET強制使所有自定義的HttpModule既處理靜態文件(.html .css .js .jpeg等)請求又處理托管文件(aspx, ascx 及 MVC等)請求,默認情況下runAllManagedModulesForAllRequests是為false的。

2、還有一種原因導致不成功,大家都知道在用vs創建MVC項目時(非空項目時),項目裏自帶了驗證、過濾方法。所以記得刪除不必要的方法。最好是建一個Empty的MVC項目。

MVC路由配置,偽靜態。