2010-04-19 110 views
5

我正在使用MVC 2.0框架 (帶有Html.ValidationMessageFor()Html.EnableClientValidation())的客戶端驗證功能。ASP.NET MVC客戶端驗證與部分視圖和Ajax

當我以簡單的形式使用驗證時,一切都很好。

但是當我通過jQuery獲取此表單時,Ajax

$.get('PathToMyForm', function(htmlResult) { 
    $('selector').html(htmlResult); 
}); 

客戶端驗證不起作用。爲什麼?

+0

*如何*它不起作用?新字段未驗證?什麼都沒有驗證?驗證碼在哪裏?在部分?在包含頁面中?多一點的代碼和解釋會有幫助。 – tvanfosson 2010-04-19 12:04:07

+0

tvanfosson, 我有[必需]屬性的模型。 在常見的情況下(沒有AJAX,只是Html.RenderPartial)客戶端驗證工作正常 - 如果我在文本框中鍵入空字符串並將焦點集中到另一個文本框,我會得到驗證消息。 但與AJAX - 我沒有得到這個消息。 – griZZZly8 2010-04-20 04:55:43

回答

0

我也遇到過MVC驗證和局部視圖的問題。我通過使用jquery.validate.js而不是內置的客戶端驗證對它進行了整理。你可以嘗試一下。

+0

jQuery.validate無法看到我的模型。我想在模型類中定義驗證規則。 – griZZZly8 2010-04-23 04:46:23

+0

你可以這樣做。檢查ASP.NET MVC期貨http://aspnet.codeplex.com/releases/view/41742 – 2010-04-23 18:48:08

0

也許jQuery沒有評估Ajax響應中的JavaScript代碼?

嘗試使用的Ajax調用類型屬性,

$.get('PathToMyForm', {dataType 'html'}, function(htmlResult) { 
    $('selector').html(htmlResult); 
}); 

jQuery documentation

的dataType默認:智能猜測(XML,JSON,腳本或HTML)

的您期望從服務器返回的數據類型。如果沒有指定,jQuery將根據響應的MIME類型智能地嘗試獲取結果(XML MIME類型將生成XML,在1.4 JSON中將生成一個JavaScript對象,在1.4腳本中將執行該腳本)否則將作爲字符串返回)。

+0

拉斐爾穆勒,謝謝你的回答,但它不能幫助我。 我已經包含警報('腳本測試')到我的部分視圖 - 它的作品。但我仍然有驗證問題。 – griZZZly8 2010-04-20 04:58:30