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 に答える