2013-12-13 102 views
2

我在我的部分視圖中有一個表單,通過調用ajax來提交。但問題是表單提交多個表格。我發現很奇怪的原因,我不知道如何解決它。表單提交多次asp.net mvc

在主視圖中,

@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並在表單之後放入部分視圖中,由makin g這些小改動形式在提交前開始驗證,但畢竟驗證通過表單提交多次。任何機構都可以幫助我找出爲什麼它會多次提交。什麼是最好的地方把'jqueryval'作爲參考?

回答

4

您可能在頁面中有多個對jquery.unobtrusive-ajax.js的引用。查看頁面源代碼並確保您擁有對該庫的單一引用。

+0

不,我的頁面上沒有多個jquery.unobtrusive-ajax.js引用。由於我在部分視圖中呈現此腳本,所以我可以說每次部分視圖呈現此腳本時再次加載。可能會導致這個問題。但是,當我從部分視圖中刪除腳本並放入主視圖時,表單不再執行驗證。任何建議,我需要做什麼解決這個問題?謝謝 – user2866746

+0

好評!!!!!爲我工作很好! – Funky

+0

這對我來說也很好。 – cyclical