2013-05-06 115 views
1

一個Ajax表單編輯記錄,我打開填充包含AJAX的局部視圖一個模式劍道UI窗口啓用形式:POST從劍道UI窗口

@model MVC_ACME_Hardware.Models.BaseModel 

<script type="text/javascript"> 
    $(function() { 
     $("form").kendoValidator(); 
    }); 
</script> 

@using (Ajax.BeginForm("EditProduct", new AjaxOptions { UpdateTargetId = "ProductDiv", OnSuccess = "SomeMethod" })) 
{ 
    @Html.ValidationSummary(true) 

    <fieldset> 
     <legend>EmployeeFTE</legend> 

     @Html.HiddenFor(model => model.Products.Product_ID) 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Products.Product_Name) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Products.Product_Name) 
      @Html.ValidationMessageFor(model => model.Products.Product_Name) 
     </div> 

     <input type="submit" value="Save" class="myButton" /> 
    </fieldset> 
} 

當我運行的形式和點擊彈出窗口上的「保存」,表單發佈成功,但帖子不是通過AJAX完成的,我的'SomeMethod'onsuccess方法沒有被調用。我嘗試添加...

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 

...在局部視圖上,但它沒有幫助。如何讓我的表單使用AJAX提交?我錯過了一些明顯的東西。謝謝!

回答

0

嘗試這樣的事情(注意輸入型):

<input type="button" value="Save" class="myButton" id="btnSave" /> 

和在$(文件)。就緒():

var validator = $(document.forms[0]).kendoValidator().data("kendoValidator");  
$("#btnSave").click(function(e) {  
       if (validator.validate()) { 
        var formContent = $(document.forms[0]).serialize(); 
        var url = $(document.forms[0]).action; 
        $.post(url, formContent).done(function(data) { 
          $(document.body).append("<div class='savedRecordMessage'>success</div>"); 
        }); 
       } 
     }); 
0

我認爲你需要添加這些文件,如果你想使用AJAX形式的MVC和Ajax選項的不顯眼的驗證。

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>