中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

VS2010與.NET4系列 8. ASP.NET 4 Web Forms的URL路由

發布時間:2020-06-11 01:23:42 來源:網絡 閱讀:260 作者:qczhang 欄目:編程語言

今天介紹 ASP.NET 4 的一項新的運行時特性——即基于 ASP.NET Web Forms 的 URL 路由能力。

什么是 URL 路由?

URL路由是在 ASP.NET 3.5 SP1 中首次引入的一種能力,它已經用于 ASP.NET MVC 應用程序內部來暴露一個干凈的、SEO友好的 "Web 2.0" URL。URL路由可以配置應用程序接受不映射到物理文件的請求URL。相反,可以使用路由定義對用戶有語義意義的URL,并能幫助搜索引擎優化(SEO)。

例如,一個顯示產品分類的傳統頁面的URL看起來可能像這樣:

http://www.mysite.com/products.aspx?category=software

使用 ASP.NET 4 中的URL路由引擎,可以配置應用程序接受下面的 URL 來表示相同的信息:

http://www.mysite.com/products/software

使用 ASP.NET 4,上面的URL既能夠映射到 ASP.NET MVC 控制器,同時也能夠映射到 ASP.NET Web Forms 頁面。

使用 ASP.NET MVC 映射 URL

ASP.NET 3.5 SP1 引入的 URL 路由提供了強大的方法來處理入站的 URL。通常,要編寫代碼讓應用程序在啟動時把指定的 URL 格式注冊/映射到匹配的代碼處理程序上。

下面就是這樣的一個例子,它使用 ASP.NET MVC 把 /product/software URL 映射到名為 "Products" 的控制器上,其中動作方法(action method)名為 "Browse":

VS2010與.NET4系列 8. ASP.NET 4 Web Forms的URL路由

MapRoute() 輔助方法的第一個參數 "product-browser" 是為路由提供一個友好的名稱。第二個參數 "products/{category}" 是匹配 /products/software URL的 URL過濾器,其中 URL 的第二段作為名為 "category" 的值。這個參數隨后將會被傳遞給 ProductsController 的 Browse() 動作方法進行處理。

使用 ASP.NET Web Forms 映射 URL

ASP.NET 4 現在允許使用 URL 路由引擎把 URL 映射到 ASP.NET Web Forms 頁面和 ASP.NET MVC 控制器。

下面是一個在 ASP.NET 4 中使用新的 MapPageRoute() 輔助方法把 /products/software URL 映射到 "Products.aspx" 頁面的例子,代碼位于應用程序的根目錄下:

VS2010與.NET4系列 8. ASP.NET 4 Web Forms的URL路由

MapPageRoute() 輔助方法的前兩個參數和 MapRoute() 相同。第一個參數為路由提供了一個友好的名稱,第二個參數指定了匹配的 URL 格式。第三個參數,則指向了 Products.aspx 頁面而不是控制器類來處理 URL。還能可選地指定額外的參數給 MapPageRoute(),從而充分利用像“路由限制”的特性并提供“默認的參數值”,就像在基于 ASP.NET MVC 的路由注冊中做的那樣。

接著在 Products.aspx 頁面內部,就可以編寫使用 ASP.NET 4 中新增的 Page.RouteData 屬性來獲取使用 /products/{category} URL過濾器映射的 "category" 參數的值,并將分類產品進行數據綁定以顯示它們:

VS2010與.NET4系列 8. ASP.NET 4 Web Forms的URL路由

除了編寫代碼訪問入站的路由參數,還可以利用新的聲明式的 <asp:routeparameter> 控件配合任何 DataSource 控件來聲明式地從路由綁定值。例如,下面使用了 <asp:routeparameter> 語句從 URL路由中的 /products/{category} 參數綁定了 select 語句的 @category 參數:

VS2010與.NET4系列 8. ASP.NET 4 Web Forms的URL路由

在 ASP.NET Web Forms 內部獲取 URL

ASP.NET 中的 URL 路由引擎既能夠用于把入站的 URL 映射到代碼處理程序,同時也能夠使用相同的映射注冊邏輯編程產生出站的 URL。

例如,上面我們給映射提供了一個“友好名稱”即 "products-name"。這就允許我們使用新的 Page.GetRouteUrl() 輔助方法在 URL 路由系統中查找路由,可選地指定參數給它,然后獲取它映射回來的真實 URL。例如,下面的代碼會獲取 "/products/software" 的 URL 值:

VS2010與.NET4系列 8. ASP.NET 4 Web Forms的URL路由

可以在代碼后置文件中或 .aspx 標記中訪問上述的輔助方法。

現在還有一個 Response.RedirectToRoute() 方法集,能夠用于把用戶重新定向對一個路由(不管是 MVC 還是 Web Forms 來處理)并可選地傳遞參數給它。

處理回送(PostBack)場景

使用 ASP.NET 4 的 URL 路由完全支持回送場景。<form runat="server"> 控件會自動地發出呈現頁面相同的 URL。例如,如果你使用 /produts/software URL 訪問頁面,那么頁面中的 <form runat="server"> 控件會呈現出 <form action="/products/software"> HTML 元素到客戶端,這意味著發生在頁面上的任何回送場景都將保留最初的 URL。

這樣就讓使用 Web Forms 和回送場景支持干凈、SEO 友好的 URL 變得容易了,并避免了當使用 URL 重寫模塊達到類似效果的人們還要去使用一些技巧。

總結

ASP.NET 4.0 同時讓使用 ASP.NET MVC 和 ASP.NET Web Forms 實現干凈的、SEO 友好的 URL 變得容易。

URL 路由引擎讓注冊任何類型的格式的URL 并將其映射到任何處理程序變得容易。因為URL 路由引擎可以同時用于映射入站URL和產生出站URL,所以可以在以后更改URL映射而不必修改任何頁面或控制器的特定代碼,這讓構建 SEO 優化的應用程序更加容易。

向AI問一下細節

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

AI

舞钢市| 鄱阳县| 沧州市| 吴川市| 玛沁县| 石阡县| 枣庄市| 渝北区| 博野县| 綦江县| 堆龙德庆县| 鲁甸县| 连平县| 平乐县| 左贡县| 汉中市| 出国| 息烽县| 新源县| 长治县| 灯塔市| 怀远县| 泽州县| 通渭县| 益阳市| 安义县| 盐山县| 日喀则市| 菏泽市| 凌海市| 云林县| 平果县| 开原市| 亚东县| 平阳县| 乡城县| 泰州市| 利川市| 宁河县| 松阳县| 惠安县|