一直念叨著寫博客,可是遲遲不見下筆,工作到現(xiàn)在,技術(shù)長進(jìn)了一點(diǎn),但是記的東西都很雜,也沒個思路,也不知道怎么去寫一遍博客,現(xiàn)在在做MVC,寫一點(diǎn)跟MVC有關(guān)的吧。
我們都知道MVC程序的所有請求都是先經(jīng)過路由解析然后分配到指定的Controller 以及 Action 中的,MVC中的路由規(guī)則都是寫在Routing文件中的,Routing的作用一般就是確定Controller、Action以及Action的參數(shù),寫法如下:
routes.MaPRoute(
name: "Default_HasId_Html",// 路由名稱
url: "{controller}/{action}/{id}.html",// 帶有參數(shù)的URL
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }// 參數(shù)默認(rèn)值
);
注意:路由名稱是唯一的,{}表示占位符,類似string類的Format方法,路由規(guī)則也可以使用正則,
MVC自定義路由的參數(shù)名要和控制器里面方法的參數(shù)名一樣
defaults表示如果當(dāng)前沒有指定控制器的話,則默認(rèn)為Home控制器,如果沒有指定方法的話,則默認(rèn)為Index,默認(rèn)沒有指定參數(shù)的話,則默認(rèn)為UrlParameter.Optional(包含可選參數(shù)的只讀性)
示例:
routes.MapRoute(
name: "List",
url: "{param}/{page}" + ext,
defaults: new { controller = "Index", action = "List", id = UrlParameter.Optional },
constraints: new RouteValueDictionary// 路由約束
{
{"param", @"ss[0-9]+c[0-9]+y[0-9]+"},
{"page", "[0-9]+"}
});
routes.MapRoute(
name: "ScoreSearchList",
url: "ss{subid}c{areaid}y{year}/{page}" + ext,
defaults: new {controller = "Index", action = "List"},
constraints: new RouteValueDictionary {{"subid", "[0-9]+"}, {"areaid", "[0-9]+"},{"year", "[0-9]+"}, {"page", "[0-9]+"}}
);
這兩個路由表達(dá)的意思是一樣的,只不過寫法不一樣而已.
感謝您懷著耐心看完整篇博文!!!
如果文章有什么錯誤或不當(dāng)之處,請您斧正!
您有任何意見或者建議,您可以給我發(fā)郵件,也可以在下面留言,我看到了會第一時間回復(fù)您的,謝謝!
新聞熱點(diǎn)
疑難解答
圖片精選