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

时间:2022-05-01 03:19:22

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

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

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

<a href="@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"];