1

在 ASP.net MVC 中,我使用Url.RouteUrl&Html.RouteLink在我的页面中创建一些链接。

考虑以下默认路由:

routes.MapRoute(
    null,
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

使用Url.RouteUrl(new { controller = "Products", action = "List", sort = "newest" })将产生 URL /Products/List?sort=newest

到目前为止,这正是我想要的。我不确定如何完成以下内容。如果我目前在/Products/List?sort=newest. 我需要为用户提供一个 URL 来更改每页列出的产品数量:

`/Products/List?sort=newest&pagesize=30`

如何使用Url.RouteUrl生成以下 URL 以便:

  • 如果我当前位于 sort=newest 的页面上,它会保留此值:/Products/List?sort=newest&pagesize=30
  • 如果我当前在一个没有排序的页面上,它会忽略它:/Products/List?pagesize=30

对于我的意思的一个例子,你可以看看stackoverflow。如果我查看问题并更改为查看特色问题,然后单击底部的页面大小,它将保留排序但随后将页面大小附加到 URL。

4

1 回答 1

2
Url.RouteUrl(
    new { 
        controller = "Products", 
        action = "List", 
        sort = Request["sort"],
        pagesize = "30"
    }
)

如果从中调用/Products/List它,它将产生/Products/List?pagesize=30. 如果从中调用/Products/List?sort=newest它,它将产生/Products/List?sort=newest&pagesize=30.

于 2012-06-30T07:47:44.540 回答