我在局部视图中有一个表单,通过进行ajax调用来提交。但问题是表单提交多个主题。我发现了非常奇怪的原因而且我不知道如何解决它。
在主视图中,
@Html.Partial("_Jobs", Model.UserJobs)
@section Scripts {
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")
}
我的部分观点我有表格
<script>
function onSuccess() {
$.fancybox.close();
console.log("success");
return false;
}
function onFailure() {
alert("fail");
}
</script>
@using (Ajax.BeginForm("CreateJob", "Jobs", null,
new AjaxOptions()
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
OnSuccess = "onSuccess",
OnFailure = "onFailure",
UpdateTargetId = "userJobsList"
}, null))
{
@Html.ValidationSummary()
<div class="col-right">
@Html.DropDownListFor(model => model.SelectedProjectId, Model.ProjectList, "Select an Option", new { @class = "text-box", id = "projects" })
@Html.TextBoxFor(model => model.Title, new { @class = "text-box", placeholder = "Job Title" })
<br />
@Html.TextAreaFor(model => model.Description, new { @class = "text-box", placeholder = "Description" })
<div class="col-right-1">
<button id="createButton">
Create
</button>
<button id="cancelButton">
Cancel
</button>
</div>
</div>
</div>
}
在主视图中给出'jqueryval'的引用,不在部分视图中验证表格,但表格是以正常方式提交的(即单次)
为了验证表单我然后从主视图中删除引用'jquery val并在表单之后放入局部视图,通过使这些小变更表单在提交之前开始验证但是在所有验证之后通过表单提交多个倍。任何机构都可以帮我弄清楚它多次提交的原因。把'jqueryval'作为参考的最佳地方是什么?
答案 0 :(得分:5)
您的页面中可能有多个对jquery.unobtrusive-ajax.js的引用。查看页面源代码并确保您对此库有一个引用。