介紹ASP.NET Routing引擎
.NET Framework 3.5 SP1已經(jīng)包含了ASP.NET Routing引擎?,F(xiàn)在微軟已經(jīng)在ASP.NET WebForms 4.0中增加了對(duì)Routing引擎更好的支持,它使用表達(dá)式構(gòu)造器進(jìn)行雙向Routing。
Channel 9剛發(fā)布了一個(gè)10-4的新視頻,展示如何在ASP.NET 4.0中使用這個(gè)新功能。
下面是視頻中展示的一段代碼。他們使用了一個(gè)經(jīng)典示例,展示如何將Product.aspx?category=Jerseys映射至Product/Jerseys。在使用ASP.NET Routing引擎時(shí),我們可以在Application_Start中向RouteTable添加這樣的映射:
- RouteTable.Routes.Add("Product",
 - new Route("Product/{name}",
 - new PageRouteHandler("~/Product.aspx")));
 
目前為了得到雙向的Routing支持,用戶必須對(duì)Query String進(jìn)行URL重寫。不過,使用ASP.NET 4.0時(shí),用戶可以注冊(cè)如下的表達(dá)式構(gòu)造器(expression builder):
- <system.web>
 - <compilation>
 - <expressionBuilders...>
 - <addexpressionPrefixaddexpressionPrefix="RouteUrl"
 - type="System.Web.Compilation.RouteUrlExpressionBuilder"/>
 - <addexpressionPrefixaddexpressionPrefix="RouteValue"
 - type="System.Web.Compilation.RouteValueExpressionBuilder"/>
 - </expressionBuilders>
 - </compilation>
 - </system.web>
 
***個(gè)表達(dá)式用于生成URL而第二個(gè)用于獲取Route值。在aspx頁(yè)面中可以使用$符號(hào)來(lái)訪問表達(dá)式:
- <asp:HyperLink NavigationUrl="<%$ RouteUrl:RouteName=Product, name=Jerseys"
 - Text="Jerseys"
 - runat="server" />
 
如果要獲取name屬性中的值,用戶可以使用Route對(duì)象而不是Request對(duì)象:
- RouteData.Values["name"];
 
或使用表達(dá)式構(gòu)造器:
- <%$ RouteValue:name %>
 
用戶可以利用ASP.NET Routing引擎和新的雙向支持將URL和物理上的Web Form解耦,以便支持對(duì)搜索引擎更友好的URL。
【編輯推薦】















 
 
 
 
 
 
 