介绍ASP.NET Routing引擎

.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添加这样的映射:

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

目前为了得到双向的Routing支持,用户必须对Query String进行URL重写。不过,使用ASP.NET 4.0时,用户可以注册如下的表达式构造器(expression builder):

 
 
  1. <system.web> 
  2. <compilation> 
  3. <expressionBuilders...> 
  4. <addexpressionPrefixaddexpressionPrefix="RouteUrl" 
  5. type="System.Web.Compilation.RouteUrlExpressionBuilder"/> 
  6. <addexpressionPrefixaddexpressionPrefix="RouteValue" 
  7. type="System.Web.Compilation.RouteValueExpressionBuilder"/> 
  8. </expressionBuilders> 
  9. </compilation> 
  10. </system.web> 


第一个表达式用于生成URL而第二个用于获取Route值。在aspx页面中可以使用$符号来访问表达式:

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


如果要获取name属性中的值,用户可以使用Route对象而不是Request对象:

 
 
  1. RouteData.Values["name"]; 


或使用表达式构造器:

 
 
  1. <%$ RouteValue:name %> 


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

http://developer.51cto.com/art/200907/138303.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值