0
我有一個MVC 2應用程序,我正在使用客戶端驗證。表單的一部分是從數據庫動態構建的字段。我也想允許客戶端驗證任何應該是總計字段(數字)的字段。使用mvc客戶端驗證的動態控件
所以,我把驗證碼的大斑點,並內置一個匹配的語句
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({ "Fields":
[{ "FieldName": "<%= id %>", "ReplaceValidationMessageContents": true, "ValidationMessageId": "<%= id %>_validationMessage", "ValidationRules":
[{ "ErrorMessage": "You must enter an <%= id %>", "ValidationParameters": {}, "ValidationType": "required" },
{ "ErrorMessage": "The <%= id %> must be more than $0.00", "ValidationParameters": { "minimum": 0.01, "maximum": 1.7976931348623157E+308 }, "ValidationType": "range" },
{ "ErrorMessage": "The field <%= id %> must be a number.", "ValidationParameters": {}, "ValidationType": "number" }
]}], "FormId": "new-creditcard-form", "ReplaceValidationSummary": false, "ValidationSummaryId": "CreditCardSummary"
});
//]]>
這將導致沒有任何錯誤。但是,當頁面加載時,僅顯示由我的數據註釋/控件生成的驗證。我假設的錯誤是我的驗證被推入堆棧,服務器生成的驗證是堆棧中的最後一個,並且只有一個項目用於驗證,最後一個項目在/第一個關閉。
任何想法,我可以得到這個工作正確嗎?
編輯:
我發現,如果我叫了一個名爲__MVC_EnableClientValidation
,建立驗證領域之後駐留在MicrosoftMvcJQueryValidation.cs
方法,它忽略了其他任何驗證定義。不知何故,我需要將我的驗證注入到大的驗證字段定義中。所以當__MVC_EnableClientValidation
被調用時,它們全部被立即註冊。
你也可以這樣做:http://stackoverflow.com/questions/13379339/how-to-add-a-new-validation-rule-to-mvcclientvalidationmetadata – 2012-11-14 13:14:29