我在ASP.net MVC中有一个表格,如下所示:
<div class="x_content">
<form id="elementEditForm" class="form-horizontal form-label-left">
<input type="hidden" name="returnUrl" value="@ViewBag.returnUrl" />
... my form fields....
<div class="form-group">
<div class="col-md-9 col-md-offset-3">
<button type="submit" form="elementEditForm" class="btn btn-success">Submit</button>
</div>
</div>
</form>
</div>
在控制器中我有:
[HttpGet]
public ActionResult Edit(string id, string returnUrl = null)
{
var e = getEditModel(id);
return View("GenericElementEdittView", e);
}
[HttpPost]
public ActionResult Edit(string id, object evm, string returnUrl = null)
{
log.Info(evm);
return View();
}
我的问题是,当我单击按钮提交表单时,不会调用HttpPost
方法。相反,每次调用HttpGet
方法,导致页面只是重新加载而不是提交。
我做错了什么?
答案 0 :(得分:3)
GET
是默认方法。指定POST
方法:
<form id="elementEditForm" class="form-horizontal form-label-left" method="post">
答案 1 :(得分:0)
另一种方法。我更喜欢将HTML Helper用于表单,因为它可以直观地了解表单应该做什么。
@using (Html.BeginForm("Edit","<ControllerName>",FormMethod.Post, new {@id="elementEditForm", @class="form-horizontal form-label-left"}))
{
<input type="hidden" name="returnUrl" value="@ViewBag.returnUrl" />
... my form fields....
<div class="form-group">
<div class="col-md-9 col-md-offset-3">
<button type="submit" form="elementEditForm" class="btn btn-success">Submit</button>
</div>
</div>
}