在 ASP.NET MVC 中使用帶字尾的 URL

iDotNetSpace發表於2009-07-07

本文介紹如何通過設定Route使URL中帶字尾。
在 ASP.NET WebForm中不少人做過通過Url重寫使Url中不帶字尾,這次我們做的正好相反。假設我們需要將URL字尾設定成shtml,以新建ASP.NET MVC專案時預設的專案為例。如果要訪問登陸頁,則URL為http://localhost/Account/Login,Account匹配Account Controller,Login匹配Login Action。如果我們要將URL改為http://localhost/Account/Login.shtml,在不改變Route的情況下Action變成了Login.shtml,顯然無法找到這個Action,所以就出現了404錯誤,我們要做的就是將Action仍然解析為Login,所以我們將預設的Route改成

1 routes.MapRoute(
2                 "Default",
3                 "{controller}/{action}.shtml"
4                 new { controller = "Home", action = "Index", id = "" }
此時,Login.shtml中的login正好對應{action}所以就會呼叫Account controller中的login action,也就達到了我們的目的。如果要使用其他字尾,只需要將.shtml改為.aspx或.html即可。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-608503/,如需轉載,請註明出處,否則將追究法律責任。

相關文章