你需要这个:
@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { onsubmit = "return myJsFunction()" }))
{
//form
}
请注意,使用此选项可使表单自行关闭,无需使用,您需要按照此MSDN article中的详细说明将其关闭.
您可以使用此方法确认调用javascript以隔离问题:
@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { onsubmit = "alert('test')" }))
{
}
这应该弹出警报.
如果第一个失败而第二个失败,则js脚本引用存在问题.这会在浏览器控制台中引发错误.
更新
如果你给你的表单一个Id,你可以使用下面的jquery(jQuery reference),而不是突然绑定你的表单:
@using (Html.BeginForm("ActionMethod","Controller",FormMethod.Post, new { id = "target"}))
{
//form
}
$(function () {
$("#target").submit(function (event) {
event.preventDefault();
myJsFunction();
});
});
当文档为ready时,这将绑定到表单.