對(duì)于Asp.Net Web Forms應(yīng)用來(lái)說(shuō),請(qǐng)求的Url都是對(duì)應(yīng)一個(gè)具體的物理文件(http://xxx.com/default.aspx)。這樣的Url與具體物理文件緊密綁定在一起,帶來(lái)了諸多方便的局限:可讀性、SEO優(yōu)化等。為了解決這些局限性,微軟引入了URL路由系統(tǒng)。下面通過(guò)一個(gè)Demo來(lái)剖析一下Asp.Net的路由系統(tǒng)。

創(chuàng)建一個(gè)空的WebForm應(yīng)用程序,在Global.asax.cs文件中加入如下代碼:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

public class Global : System.Web.HttpApplication
    {        protected void Application_Start(object sender, EventArgs e)
        {            //處理匹配的文件
            RouteTable.Routes.RouteExistingFiles = true;            //url默認(rèn)值
            RouteValueDictionary defaults = new RouteValueDictionary() { { "name", "wuwenmao" }, { "id", "001" } };            //路由約束
            RouteValueDictionary constraints = new RouteValueDictionary() { { "name", @"\w{2,10}" }, { "id", @"\d{3}" } };            //與路由相關(guān)的值,但不參與路由是否匹配URL模式
            RouteValueDictionary dataTokens = new RouteValueDictionary() { { "defaultName", "wuwenmao"