【发布时间】:2018-12-16 16:52:47
【问题描述】:
我有一个带有搜索功能的索引页面来显示数据。输入条件(或没有条件)后,我使用 POST 方法将请求提交到不同的操作名称(搜索操作),但结果将返回到索引视图。
Index.cshtml
@using (Html.BeginForm("Search", "Home"))
{
// criteria fields
<button type="submit" class="btn btn-primary">Search</button>
}
HomeController.cs
public ActionResult Index()
{
// preparing the view model
return View();
}
[HttpPost]
public ActionResult Search(HomeViewModel vm)
{
// get the data
return View("Index", vm);
}
这会将网址更改为我不想显示的http://localhost:12345/Home/Search。我可以将 Search 操作名称更改为 Index,因此 get 和 post 请求将使用相同的名称,但是有什么方法可以使 url 不变?
我尝试在 RouteConfig.cs 中添加新路由
routes.MapRoute(
name: "Search",
url: "",
defaults: new { controller = "Home", action = "Search" }
);
但它不起作用,我遇到了 404 错误。
【问题讨论】:
标签: asp.net-mvc url-routing asp.net-mvc-routing