我正在构建一个简单的GET
表单。
在用户搜索了某些内容后,他获得了预期的结果。值被分成不同的页面。这就是我的问题所在。
如果我想要路由到不同的页面,但保留所有的URL参数,我必须做这样的事情。
<a href="@Url.RouteUrl("MyRoute", new {
page = ...,
search = ...,
dateFrom = ...,
dateTo = ...,
orderBy = ...,
...
})">
你明白了。我要复制&amp;将这些代码粘贴到所有地方,这真的搞乱了代码。整点只是改变page
属性......
有没有办法获取包含所有参数的当前路径,然后单独更改单个参数?
答案 0 :(得分:4)
您应该可以使用ViewContext.RouteData.Values
:
@{
var currentRouteValues = ViewContext.RouteData.Values;
currentRouteValues["page"] = "new page";
}
@Url.RouteUrl(currentRouteValues);
更新。在MVC 5中RouteData
可通过Url.RequestContext.RouteData
获取。