[英]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.