91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET4中的URL Routing怎么使用

發布時間:2021-12-06 15:46:33 來源:億速云 閱讀:131 作者:iii 欄目:編程語言

這篇文章主要介紹“ASP.NET4中的URL Routing怎么使用”,在日常操作中,相信很多人在ASP.NET4中的URL Routing怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET4中的URL Routing怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

什么是URL Routing

首先,URL routing其實在ASP.NET 5 SP1中就被引入了,但是介于之前一直沒有用到,況且微軟的很多關于ASP.NET 4的介紹都把這作為一新的功能,因此就把題目取為這個吧。
之前,一個典型的ASP.NET的URL通常如下http://www.myexample.com/salesreport.aspx?year=2009

在這個URL中的salesreport.aspx代表的是一個真實存在的物理文件,后綴.aspx在url中的存在不僅完全沒有意義,而且使得這個url不是SEO-friendly的。而使用URL Routing之后,我們就可使用如下更簡潔明了的地址來訪問了,http://www.myexample.com/salesrepot/2009

使用Route Engine進行URL Mapping

在asp.net mvc中,通過MapRoute將url映射到相應的controller和action, 而在web form中,在Global.assx的Application_Start中,我們通過MapPageRoute來將url映射到一個頁面上

void RegisterRoutes(RouteCollection routes)   {      routes.MapPageRoute("SalesRoute", "SalesReport/{year}", "~/sales.aspx");                                  }

MapPageRoute這里使用了三個參數,***個是給這個Route的命名,第二個是這個URL的映射Pattern, 而***一個就是對應的ASPX頁面。除了這個最常用直接的方法之外,還可以使用其重載的其它方法,來個route設置default值,添加各種約束條件,如下面的這一個

void RegisterRoutes(RouteCollection routes)   {    routes.MapPageRoute("SalesRoute",                           "SalesRoute/{year}",                             "~/sales.aspx", true,                          new RouteValueDictionary{                               { "year", DateTime.Now.Year.ToString()}},                                                                    new RouteValueDictionary{                              { "year", @"\d{4}" } });   }

相比于***個route,這個多了三個參數,***個為boolean值,后面兩個為RouteValueDictionary, 其中***個就指定了一個default值,而***一個就是一個約束,通過正則表達式約束了參數year必須是四位的數字。

在將SalesRoute/2009成功的映射到sales.aspx頁面之后,如何在sales的code中獲取這個“2009"值呢?通過Page類的RouteData來獲取

protected void Page_Load(object sender, EventArgs e)   {       string year = RouteData.Values["year"] as string;                                                    }

使用Routing Engine生成URL

除了解析URL之外,我們同時可以生成這些簡潔明了的URL, 如下面的代碼

RouteValueDictionary parameters = new RouteValueDictionary   {   { "year", "2008" },   { "category", "recreation" }  };    VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, "SalesRoute", parameters);                      hyperLnk.NavigateUrl = vpd.VirtualPath;

這里的SalesRoute就是我們在Application_Start中注冊過的那個Route。 值得注意的是,在SalesRoute的Pattern中,我們并沒有”{category}”,那么RouteEngine怎么處理這個值呢?這時,category就為被作為一個querystring添加到url中,生成的URL將會是這樣的:http://www.myexample.com/salesreport/2009?category=recreation

此外,如果在這個sales頁面上加一個button,這個button對應的url會不會也會如上面的url那樣簡潔呢?答案是肯定的。但是是通過在Form標簽中,指定Action來實現頁面的回發。

到此,關于“ASP.NET4中的URL Routing怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绩溪县| 灵石县| 沁阳市| 特克斯县| 克什克腾旗| 观塘区| 彩票| 丰原市| 泸溪县| 遂宁市| 新民市| 简阳市| 呼玛县| 博罗县| 西藏| 丽水市| 明星| 包头市| 崇仁县| 万山特区| 清苑县| 铁力市| 衡阳县| 九寨沟县| 新疆| 舟山市| 江永县| 邵东县| 玉山县| 信丰县| 黑山县| 施甸县| 桃江县| 杭锦旗| 长春市| 丁青县| 沭阳县| 绥中县| 科尔| 广东省| 克东县|