MVC 偽靜態路由、MVC路由配置,實現偽靜態。


前段時間,研究了一下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/Index.html

 還是報錯:

  第二步: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項目。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM