你需要这个:
@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { onsubmit = "return myJsFunction()" }))
{
//form
}
注意using
这使得表单自动关闭,无需使用您需要关闭它,如此详细信息MSDN 文章 https://msdn.microsoft.com/en-gb/library/dd410596(v=vs.100).aspx.
您可以确认是否调用了 javascript 以隔离问题:
@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { onsubmit = "alert('test')" }))
{
<input type="submit" value="test" />
}
这应该会弹出一个警报。
如果第一个失败而第二个有效,则说明您的 js 脚本引用存在问题。这会在您的浏览器控制台中引发错误。
Update
如果您为表单提供一个 Id,则可以使用以下 jquery 代替,而不是强制绑定表单(jQuery 参考 http://api.jquery.com/submit/):
@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { id = "target"}))
{
//form
}
<script>
$(function () {
$("#target").submit(function (event) {
event.preventDefault();
myJsFunction();
});
});
</script>
当文档是表单时,这将绑定ready http://api.jquery.com/ready/.