ASP.NET4中的URLRouting怎么使用

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

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供都勻企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為都勻眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

什么是URL Routing

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

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

使用Route Engine進(jìn)行URL Mapping

在asp.net mvc中,通過(guò)MapRoute將url映射到相應(yīng)的controller和action, 而在web form中,在Global.assx的Application_Start中,我們通過(guò)MapPageRoute來(lái)將url映射到一個(gè)頁(yè)面上

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

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

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

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

在將SalesRoute/2009成功的映射到sales.aspx頁(yè)面之后,如何在sales的code中獲取這個(gè)“2009"值呢?通過(guò)Page類的RouteData來(lái)獲取

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

使用Routing Engine生成URL

除了解析URL之外,我們同時(shí)可以生成這些簡(jiǎn)潔明了的URL, 如下面的代碼

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

這里的SalesRoute就是我們?cè)贏pplication_Start中注冊(cè)過(guò)的那個(gè)Route。 值得注意的是,在SalesRoute的Pattern中,我們并沒(méi)有”{category}”,那么RouteEngine怎么處理這個(gè)值呢?這時(shí),category就為被作為一個(gè)querystring添加到url中,生成的URL將會(huì)是這樣的:http://www.myexample.com/salesreport/2009?category=recreation

此外,如果在這個(gè)sales頁(yè)面上加一個(gè)button,這個(gè)button對(duì)應(yīng)的url會(huì)不會(huì)也會(huì)如上面的url那樣簡(jiǎn)潔呢?答案是肯定的。但是是通過(guò)在Form標(biāo)簽中,指定Action來(lái)實(shí)現(xiàn)頁(yè)面的回發(fā)。

到此,關(guān)于“ASP.NET4中的URL Routing怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

新聞標(biāo)題:ASP.NET4中的URLRouting怎么使用
當(dāng)前地址:http://bm7419.com/article2/jcchic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、用戶體驗(yàn)、企業(yè)網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、建站公司網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作