繁体   English   中英

ASP.NET MVC路由中的两个参数

[英]Two parameters in asp.net mvc route

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

我的控制器动作:

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+" }
        );

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

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

因此,如果您执行以下操作:

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

它应该吐出类似SearchResults/Page2?searchterm=yousearchterm

HTH,
查尔斯

您是否在Html.PageLinks帮助器中尝试过此操作?

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

注意参数的顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM