對于Asp.Net Web Forms應用來說,請求的Url都是對應一個具體的物理文件(http://xxx.com/default.aspx)。這樣的Url與具體物理文件緊密綁定在一起,帶來了諸多方便的局限:可讀性、SEO優(yōu)化等。為了解決這些局限性,微軟引入了URL路由系統(tǒng)。下面通過一個Demo來剖析一下Asp.Net的路由系統(tǒng)。
創(chuàng)建一個空的WebForm應用程序,在Global.asax.cs文件中加入如下代碼:
public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { //處理匹配的文件 RouteTable.Routes.RouteExistingFiles = true; //url默認值 RouteValueDictionary defaults = new RouteValueDictionary() { { "name", "wuwenmao" }, { "id", "001" } }; //路由約束 RouteValueDictionary constraints = new RouteValueDictionary() { { "name", @"\w{2,10}" }, { "id", @"\d{3}" } }; //與路由相關的值,但不參與路由是否匹配URL模式 RouteValueDictionary dataTokens = new RouteValueDictionary() { { "defaultName", "wuwenmao"