【问题标题】:Two parameters in asp.net mvc routeasp.net mvc route中的两个参数
【发布时间】:2011-02-11 05:14:18
【问题描述】:

这是对我之前在此论坛上提出的问题的修改。

我的控制器操作:

public ActionResult SearchResults(string searchTerm, int page)...

我的看法:

<%= Html.PageLinks((int)ViewData["CurrentPage"], (int)ViewData["TotalPages"], i => Url.Action("SearchResults", new { page = i }))%>...

路由条目:

routes.MapRoute(
            null,
            "SearchResults",
            new { controller = "Search", action = "SearchResults", page = 1 } // Defaults
        );

        routes.MapRoute(
          "Search",
          "SearchResults/Page{page}",
          new { controller = "Search", action = "SearchResults" },
          new { page = @"\d+" }
        );

我的目标是为搜索结果提供分页链接。问题是当我单击分页链接中的任何页面时,它会给我一个空搜索词的搜索结果。 除了页码参数之外,如何传递作为字符串的搜索词参数? 我应该在路由中添加什么?

【问题讨论】:

    标签: asp.net-mvc parameters routes


    【解决方案1】:

    我认为,如果您在路由值字典中添加其他未在路由中定义的内容,它会将它们添加为 get 参数。

    所以如果你这样做:

    Url.Action("SearchResults", new { page = i, searchterm = "YourSearchTerm" })
    

    它应该吐出一条类似SearchResults/Page2?searchterm=yousearchterm的路线

    HTH,
    查尔斯

    【讨论】:

      【解决方案2】:

      您是否在 Html.PageLinks 帮助器中尝试过这个?

      Url.Action("SearchResults", new { searchTerm = "your query", page = i })
      

      注意参数的顺序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-04
        • 1970-01-01
        • 2015-04-14
        • 1970-01-01
        • 1970-01-01
        • 2011-01-23
        • 2021-12-12
        相关资源
        最近更新 更多