使用大型URL查询进行路由

时间:2014-05-21 17:17:36

标签: c# asp.net-mvc asp.net-mvc-5

我正在构建一个简单的GET表单。

在用户搜索了某些内容后,他获得了预期的结果。值被分成不同的页面。这就是我的问题所在。

如果我想要路由到不同的页面,但保留所有的URL参数,我必须做这样的事情。

<a href="@Url.RouteUrl("MyRoute", new {
    page = ...,
    search = ...,
    dateFrom = ...,
    dateTo = ...,
    orderBy = ...,
    ...
})">

你明白了。我要复制&amp;将这些代码粘贴到所有地方,这真的搞乱了代码。整点只是改变page属性......

有没有办法获取包含所有参数的当前路径,然后单独更改单个参数?

1 个答案:

答案 0 :(得分:4)

您应该可以使用ViewContext.RouteData.Values

@{
    var currentRouteValues = ViewContext.RouteData.Values;
    currentRouteValues["page"] = "new page";
}
@Url.RouteUrl(currentRouteValues);

更新。在MVC 5中RouteData可通过Url.RequestContext.RouteData获取。