Asp.NET中的路由配置,首先要提到的幾個相關類型,Route ,RouteBase,RouteData,RouteTable,RouteCollection 這幾個。下麵我一次回憶一下,有需要的朋友也可以作為參考,如果有問題也可以在留言區指出來,高手路過也請提出一些寶貴的意見。 ①Route 這 ...
Asp.NET中的路由配置,首先要提到的幾個相關類型,Route ,RouteBase,RouteData,RouteTable,RouteCollection 這幾個。下麵我一次回憶一下,有需要的朋友也可以作為參考,如果有問題也可以在留言區指出來,高手路過也請提出一些寶貴的意見。
①Route 這個類繼承了RouteBase這個抽象類,Route類型中幾個重要的屬性:RouteHandler,它是最重要的一個屬性,作用是真正執行路由的功能。這裡有個小技巧 當你看到DemoHandler 類似這樣的以Handler結尾的時候 該屬性是最後用來執行的。
1)Constaints 約束,路由模板約束 ,它的類型是RouteValueDictionary字典類型key表示的是路由模板中的變數名稱,value表示匹配的正則表達式。
3)Defaults
② RouteBase這個抽象類中主要有兩個重要的方法 GetRouteData(獲取路由數據)和GetVirtualPath(獲取完整的虛擬路徑)
③RouteData
1)Values,表示最後得到的參數
2)RouteHandler
④RouteTable這個類可以用來在asp.net應用程式啟動的時候進行Url重寫,重寫的方法有2個,MapPageRoute和Ignore,第一個是物理文件和路由Url之間的映射,另外一個是忽略物理文件和路由Url之間的映射。即屏蔽。
protected void Application_Start()
{
///路由重寫
var defaults = new RouteValueDictionary { { "name", "" }, { "id", "" } };
RouteTable.Routes.MapPageRoute("", "api/{name}/{id}", "~/default.aspx", true, defaults);
GlobalConfiguration.Configure(WebApiConfig.Register);
}
⑤RouteCollection是Route的集合