如何在mvc 4中的表单提交上调用POST控制器而不是GET方法

时间:2015-02-13 14:58:19

标签: html asp.net-mvc asp.net-mvc-4

我在表单提交上调用我的POSt控制器方法时遇到问题。以下是我的两种方法

[HttpGet]
public ViewResult List(int page = 1)
{

}

[HttpPost]
public ViewResult List(SearchTerms search,int page = 1)
{

}

在http请求中,我想要调用我的GET方法。但是,当我提交表单时,我希望调用POST方法,但是再次调用相同的GET方法。永远不会调用post方法。请问我哪里出错了?任何帮助表示赞赏。以下是我的表格。

 @using (Html.BeginForm("List", "Search",  
         FormMethod.Post, new { @class="form-group text-right" }))
{
......
<span class="input-group-btn">
   <button class="btn btn-info" type="button" id="addressSearch"  onclick="location.href='@Url.Action("List", "Search")'">Search</button>
</span>
...
}

1 个答案:

答案 0 :(得分:4)

您的按钮不会提交表单。它重定向到List页面,这使浏览器发送GET请求。您可以使按钮提交表单:

@using (Html.BeginForm("List", "Search",  
         FormMethod.Post, new { @class="form-group text-right" }))
{
......
<span class="input-group-btn">
   <button class="btn btn-info" type="submit" id="addressSearch">Search</button>
</span>
...
}