服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

asp.net web forms 4.0中的双向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添加这样的映射:

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。


扫描关注微信公众号