【发布时间】:2014-10-08 00:45:01
【问题描述】:
我正在使用 MVC 4 制作表单:
查看:
@model etc.Models.FormViewModel
@using (Html.BeginForm("NewForm", "Form", FormMethod.Post))
{
// html helpers here ...
<div class="row">
<div class="form-group col-lg-2 col-lg-offset-5">
<button type="submit" class="btn" value="Submit">Submit</button>
</div>
</div>
}
控制器:
[HttpPost]
public ActionResult NewForm()
{
FormViewModel newForm = new FormViewModel(); //this will never get hit
return View();
}
单击提交不会执行任何操作。它只是使页面向上滚动一点并专注于特定的输入字段。当我填充该字段和其他字段并再次单击提交时,无论我是否在控制器操作的顶部包含 [HttpPost],都不会调用 NewForm()。如何做到这一点,以便在单击提交按钮时调用 NewForm()?我如何实际将表单数据传递给 NewForm()?
【问题讨论】:
-
验证您是在浏览器的调试网络监视器中或使用 Fiddler 等工具发出 POST 请求。
-
我刚才试过了,但它没有触发任何 POST 请求。
-
你有任何 javascript 拦截提交请求吗?如果您正在使用任何数据验证,请尝试关闭任何数据验证。
-
您的模型是否有任何属性在提交表单时未满足?您可能会遇到客户端验证错误。
-
@MikeV 在底部添加
Html.ValidationSummary帮助我解决了这个问题。发布的表单带有未显示的验证错误,与格式错误的Html.DropdownListFor有关。谢谢。
标签: asp.net asp.net-mvc-4