ASP.NET MVC将表单值传递给操作方法

Sac*_*nth 6 forms asp.net-mvc

我有以下表格

<form name="SearchForm" method="post" id="SearchForm" action="/Search/">
Run Code Online (Sandbox Code Playgroud)

以下按钮

<input type="button" onclick="javascript:document.SearchForm.submit();" class="btn-leftsearch">
Run Code Online (Sandbox Code Playgroud)

单击此按钮,表单将提交并调用此方法

[HttpPost]
public ActionResult Index(string querystring)
{
   return View();
}
Run Code Online (Sandbox Code Playgroud)

当然,querystring为null.我想将查询字符串或最好是表示表单中字段的其他内容传递给控制器​​.我尝试过使用表单标记中的action属性.我试图将数据添加到按钮中的onclick方法.什么都行不通.我想做的就是传递一些这样的数据

Search?pri=all&amenity=pool etc
Run Code Online (Sandbox Code Playgroud)

在控制器中我会有类似的东西

[HttpPost]
public ActionResult Index(string pri, List<string> amenities)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何将这些数据传递给视图吗?

小智 11

我想建议您,您可以使用以下代码片段来解决您的问题.

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(FormCollection collection)
{
     string valueFromNameTextBox = collection["name"];
}
Run Code Online (Sandbox Code Playgroud)

在集合上请放置搜索文本框的名称.您将获得实际输入的值.您可以使用表单上所有输入的名称为此集合建立索引.