Я использую DataAnnotations
для проверки моей ViewModel
на стороне клиента с jquery.validate.unobtrusive
и на стороне сервера в приложении ASP.NET MVC.
Не так давно я понял, что могу написать валидацию следующим образом:
[Required(ErrorMessage = "{0} is required")]
public string Name { get; set; }
Таким образом, я могу легко определить некоторые общие строки в config или в ресурсах и всегда использовать его в DataAnnotations
. Таким образом, будет легче изменить сообщения проверки в моем приложении в будущем.
Также я знаю, что существует библиотека FluentValidation, которая позволяет добавлять правила проверки уже существующим ViewModel
. Я знаю, что есть проблема с Add/Edit ViewModels
, которая может иметь похожие поля, но различные ValidationRules.
Другая проблема, возникающая в результате проверки клиента, заключается в том, что html, недавно добавленный в DOM (с использованием ajax-запроса), должен быть проанализирован для включения проверки. Вот как я это делаю:
$('#some-ajax-form').data('validator', null);
$.validator.unobtrusive.parse('#some-ajax-form');
Итак, у меня есть несколько вопросов:
- Есть ли другие полезные методы, которые могут помочь централизовать все правила проверки в приложении?
- Каков наилучший способ решить проблему с добавлением/редактированием
ViewModel
? Могу ли я использоватьDataAnnotations
с FluentValidation или отдельно добавить и отредактироватьViewModels
по-прежнему является лучшим вариантом? - Есть ли лучший способ инициализировать проверку для новых элементов DOM, которые были получены с помощью ajax-вызова, который я упоминаю?
Я не спрашиваю, как создать свой собственный DataValidators
Я знаю, как это сделать. Я ищу способы использования их более продуктивным и легким для обслуживания способом.