.NET MVC - 表单提交导致回发而不是onSubmit javascript执行

Rop*_*tah 2 asp.net-mvc jquery form-submit

我正在尝试使用jQuery提交我的Ajax表单.但是,调用submit()函数会导致整个页面刷新.它应该只执行表单的onSubmit部分(返回false以便页面不应刷新).

<%Ajax.BeginForm("AllocateAndUpdateMech", 
  New With {.Controller = "Planning", 
            .Id = Model.Id}, 
            New AjaxOptions With {
                       .LoadingElementId = "loading", 
                       .UpdateTargetId = Model.Id & "_alloc"}, 
            New With {.id = "allocate_" & Model.Id & "_" & item.UserId}
)%>
<%Html.Hidden("mechId", item.UserId)%>
<a href="javascript:void(0);" onclick="$('#<%="allocate_" & Model.Id & "_" & item.UserId %>').submit();">Allocate: <%=item.UserName%></a>
<%Html.EndForm()%>
Run Code Online (Sandbox Code Playgroud)

Mat*_*s F 5

如果您使用HTML Ajax.BeginForm,则无法提交表单,因为表单以某种方式与ASP.NET MVC Ajax连接.

有3种解决方案:

最简单,最好的方式

使用jquery $ .AJAX提交表单

容易但奇怪的方式

在表单上放置一个提交按钮.将其设置为隐藏,然后通过jquery单击它.

困难但你的问题的答案

我已经在某个地方看到你仍然可以完全按照你所描述的那样做,但这是一个解决方法它看起来并不好看.

以下是它完成提交表格样本的方式