Метод проверки клиента работает «из коробки», так как он использует ModelMetadata модели представления, передаваемой в представление, для передачи атрибутов HTML5 data-*
в поля ввода на основе атрибутов аннотации данных, которые вы использовали в модели представления.Если вы используете совершенно другую модель представления в качестве аргумента действия в действии POST, это, очевидно, не сработает, так как проверка на стороне сервера будет зависеть от модели представления в действии POST, тогда как проверка клиента будет зависеть от модели представления, передаваемой в представление представления.эта форма.
Единственное решение, которое я вижу в этой проблеме, - это забыть об автоматической проверке клиента и определить правила jquery.validate вручную, чтобы они соответствовали модели представления, которую вы используете в действии POST насервер.Таким образом, вы можете забыть об атрибутах data-*
, исключить скрипт jquery.validate.unobtrusive.min.js
со своей страницы и войти в код :
$(function() {
$('form').vaildate({
rules: {
...
},
messages: {
...
}
});
});