У меня есть приложение 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"
});
//]]>
Это не вызывает никаких ошибок. Однако при загрузке страницы отображается только валидация, созданная моими аннотациями/элементами данных. Я предполагаю, что ошибка заключается в том, что мои проверки вставляются в стек, проверенная сервером проверка является последней в стеке, и только один элемент используется для проверки, последний - в первом.
Любые идеи, как я могу заставить это работать правильно?
EDIT:
Я обнаружил, что если я называю метод, называемый __MVC_EnableClientValidation
, который находится в MicrosoftMvcJQueryValidation.cs
сразу после построения полого подтверждения, он игнорирует любые другие определения проверки. Так или иначе, мне нужно будет ввести мою проверку в большое определение поля проверки. так что, когда вызывается __MVC_EnableClientValidation
, все они регистрируются сразу.
Вы также можете сделать это: http://stackoverflow.com/questions/13379339/how-to-add-a-new-validation-rule-to-mvcclientvalidationmetadata –