首页 > 代码库 > 在ASP.NET MVC控制器中获取链接中的路由数据

在ASP.NET MVC控制器中获取链接中的路由数据

在ASP.NET MVC中,在链接中附加路由数据有2种方式。一种是把路由数据放在匿名对象中传递:

 

<a href=http://www.mamicode.com/"@Url.Action("GetRouteData","Home",new { ReturnUrl = Request.Url.PathAndQuery, x = 10})">走你</a>

 

一种是放在RouteValueDictionary对象中传递:

 

<a href=http://www.mamicode.com/"@Url.Action("GetRouteData","Home",new RouteValueDictionary(new { a = 1, b = 2 }))">也走你</a>

 

如果在控制器中,通过类似this.ControllerContext.RouteData.Values["somekey"].ToString()方式来获取路由数据是行不通的,因为Url.Action方法所带的路由数据是以querystring的形式传递的。

 

通过如下方式来获取链接中的路由数据:

 

var temp = Request.QueryString["ReturnUrl"];
var temp1 = Request.QueryString["x"];
var temp2 = Request.QueryString["a"];

在ASP.NET MVC控制器中获取链接中的路由数据