程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET Web Forms 4.0中雙向Routing支持

ASP.NET Web Forms 4.0中雙向Routing支持

編輯:關於ASP.NET

.NET Framework 3.5 SP1已經包含了ASP.NET Routing引擎。現在微軟已經在ASP.NET WebForms 4.0中 增加了對Routing引擎更好的支持,它使用表達式構造器進行雙向Routing。

Channel 9剛發布了一個10-4的新視頻,展示如何在ASP.NET 4.0中使用這個新功能。

下面是視頻中展示的一段代碼。他們使用了一個經典示例,展示如何將Product.aspx? category=Jerseys映射至Product/Jerseys。在使用ASP.NET Routing引擎時,我們可以在 Application_Start中向RouteTable添加這樣的映射:

RouteTable.Routes.Add("Product",
  new Route("Product/{name}", 
  new  PageRouteHandler("~/Product.aspx")));

目前為了得到雙向的Routing支持,用戶必須對Query String進行URL重寫。不過,使用ASP.NET 4.0時 ,用戶可以注冊如下的表達式構造器(expression builder):

<system.web>
 <compilation>
  <expressionBuilders  ...>
   <add expressionPrefix="RouteUrl"
       type="System.Web.Compilation.RouteUrlExpressionBuilder" />
   <add  expressionPrefix="RouteValue"
       type="System.Web.Compilation.RouteValueExpressionBuilder" />
   </expressionBuilders>
 </compilation>
</system.web>

第一個表達式用於生成URL而第二個用於獲取Route值。在aspx頁面中可以使用$符號來訪問表達式:

<asp:HyperLink NavigationUrl="<%$ RouteUrl:RouteName=Product,  name=Jerseys"
   Text="Jerseys"
   runat="server" />

如果要獲取name屬性中的值,用戶可以使用Route對象而不是Request對象:

RouteData.Values["name"];

或使用表達式構造器:

<%$ RouteValue:name %>

用戶可以利用ASP.NET Routing引擎和新的雙向支持將URL和物理上的Web Form解耦,以便支持對搜索 引擎更友好的URL。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved