介绍ASP.NET Routing引擎

开发 后端
本文介绍ASP.NET Routing引擎,现在微软已经在ASP.NET WebForms 4.0中增加了对Routing引擎更好的支持,它使用表达式构造器进行双向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。

【编辑推荐】

  1. 浅析ASP.NET中配置文件
  2. .NET RIA Services就像ASP.NET那样方便
  3. ASP.NET AJAX Extensions中UpdatePanel控件概述
  4. ASP.NET调用UpdatePanel的Update()方法
  5. 浅谈ASP.NET AJAX的WCF服务
责任编辑:佚名 来源: 51cto.com
相关推荐

2009-08-19 09:23:40

ASP.NET Rou

2009-03-12 10:42:38

RoutingIgnoreRouteASP.NET

2009-07-29 10:02:49

ASP.NET上传

2009-07-23 14:17:41

2009-07-29 17:26:39

ASP.NET页面

2009-07-21 10:40:36

ASP.NET Pro

2009-07-27 17:00:29

ASP.NET主机

2009-09-10 14:02:08

LINQ ASP.NE

2009-07-20 16:12:21

ASP.NET Fra

2009-07-29 09:14:36

ASP.NET网站

2012-05-09 13:29:42

ASP.NET

2014-08-26 09:22:40

ASP.NET MVCRouting

2009-08-21 10:51:55

ASP.NET Rou解析URL

2009-03-09 13:46:31

RoutingWebASP.NET

2009-07-22 16:05:34

ASP.NET AJA

2009-07-29 17:23:17

ASP.NET表单

2009-07-29 09:53:24

ASP.NET异常管理

2009-07-24 13:39:03

ASP.NET弹出窗口

2009-08-03 17:35:07

ASP.NET WebASP.NET编程工具

2009-10-15 14:50:34

ASP.NET Rou
点赞
收藏

51CTO技术栈公众号