ASP.NET WebForms 4.0支持单向路由功能(MVC)

简介: The ASP.NET Routing engine was added in .NET Framework 3.5 SP1. Now Microsoft have added better support for using the engine in ASP.

The ASP.NET Routing engine was added in .NET Framework 3.5 SP1. Now Microsoft have added better support for using the engine in ASP.NET WebForms 4.0 by using expression builders enabling bi-directional routing.

Channel9 have just published a new episode of 10-4 showing how to use this new functionality in ASP.NET 4.0. In the video Jonathan Carter walk through a simple example of how to enable this in an existing ASP.NET application.

Below is a summary of the code showed in the video. They use the typical example of how Product.aspx?category=jerseys can map to Product/Jerseys. Using the ASP.NET Routing engine this mapping can be added using the RouteTable in Application_Start:

 

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

To add bi-directional routing support today, users would have to use URL rewriting on the query string. However, in ASP.NET 4.0 users can register expression builders:

 

<system.web>
<compilation>
<expressionBuilders ...>
<add expressionPrefix="RouteUrl"
type="System.Web.Compilation.RouteUrlExpressionBuilder" />

<add expressionPrefix="RouteValue"
type="System.Web.Compilation.RouteValueExpressionBuilder" />
</expressionBuilders>
</compilation>
</system.web>

The first expression is for getting a URL and the second for getting a value. The $ sign is used to access expressions from an aspx page:

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

To get the value from the name attribute, users use the Route object instead of the Request object:

RouteData.Values["name"];

or using an expression builder:

<%$ RouteValue:name %>

By using ASP.NET Routing and the new bi-directional support users can decouple URLs from a physical Web Form, allowing friendlier URLs and have search engines discover and use these.

 

版权

作者:灵动生活 郝宪玮

出处:http://www.cnblogs.com/ywqu

如果你认为此文章有用,请点击底端的【推荐】让其他人也了解此文章,

img_2c313bac282354945ea179a807d7e70d.jpg

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

相关文章
|
开发框架 前端开发 .NET
ASP.NET MVC (二、数据传递)(7)
ASP.NET MVC (二、数据传递)(7)
79 0
ASP.NET MVC (二、数据传递)(7)
|
开发框架 前端开发 .NET
ASP.NET MVC (二、数据传递)(1)
ASP.NET MVC (二、数据传递)(1)
65 0
ASP.NET MVC (二、数据传递)(1)
|
开发框架 前端开发 .NET
ASP.NET MVC (二、数据传递)(3)
ASP.NET MVC (二、数据传递)(3)
64 0
ASP.NET MVC (二、数据传递)(3)
|
开发框架 前端开发 .NET
ASP.NET MVC (二、数据传递)(6)
ASP.NET MVC (二、数据传递)(6)
71 0
ASP.NET MVC (二、数据传递)(6)
|
开发框架 前端开发 .NET
ASP.NET MVC (二、数据传递)(8)
ASP.NET MVC (二、数据传递)(8)
109 0
ASP.NET MVC (二、数据传递)(8)
|
开发框架 前端开发 .NET
ASP.NET MVC (二、数据传递)(5)
ASP.NET MVC (二、数据传递)(5)
92 0
ASP.NET MVC (二、数据传递)(5)
|
开发框架 前端开发 .NET
ASP.NET MVC (二、数据传递)(2)
ASP.NET MVC (二、数据传递)(2)
92 0
ASP.NET MVC (二、数据传递)(2)
|
存储 开发框架 前端开发
ASP.NET MVC (二、数据传递)(4)
ASP.NET MVC (二、数据传递)(4)
82 0
ASP.NET MVC (二、数据传递)(4)
|
前端开发 中间件 .NET
asp.net core mvc 中间件之路由
asp.net core mvc 中间件之路由 路由中间件 首先看路由中间件的源码 先用httpContext实例化一个路由上下文,然后把中间件接收到的路由添加到路由上下文的路由集合 然后把路由上下文作为参数,调用IRouter.
1200 1