【发布时间】:2011-01-22 23:16:44
【问题描述】:
我有一个 URL /products/search,其中 Products 是控制器,Search 是操作。此 url 包含一个搜索表单,其操作属性是(并且应该始终是)/products/search 例如;
<%using( Html.BeginForm( "search", "products", FormMethod.Post))
在我在搜索结果中引入分页之前,这可以正常工作。例如,如果我搜索“t”,我会得到一个分页列表。所以在第 2 页上,我的网址如下所示:
/products/search/t/2
它显示搜索“t”的结果集的第 2 页。问题是表单操作现在也是 /products/search/t/2。我希望表单始终发布到 /products/search。
我的路线是:
routes.MapRoute( "Products search",
"products/search/{query}/{page}",
new { controller = "Products", action = "Search", query = "", page = 1 });
routes.MapRoute( "Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" });
如何强制 Html.BeginForm(),或者更具体地说 Url.Action("Search", "Products"),忽略 url 中的 /query/page?
谢谢
【问题讨论】:
标签: asp.net asp.net-mvc forms url routing