BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

ASP.NET Web Forms 4.0中的双向Routing支持

| 作者 Jon Arild Tørresdal 关注 0 他的粉丝 ,译者 赵劼 关注 5 他的粉丝 发布于 2009年3月8日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

.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。

查看英文原文:Bi-Directional Routing Support in ASP.NET Web Forms 4.0

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

是个好东西 by jong wake

我也正在期待M$可以在这样的细枝末节(具备通用性的)的实现多考虑一些。

Re: 是个好东西 by Jeffrey Zhao

其实这些倒都是小东西,自己写一下也没有太多代码。理想情况下,每个团队都应该有自己的一套辅助类库,可以大大提高效率。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT