Как добавить правило проверки на стороне сервера, не используя атрибуты? - PullRequest
0 голосов
/ 07 марта 2019

Легко добавить подтверждение например. RequiredAttribute как атрибуты время разработки:

[Required, StringLength(100)]
public string Title {get; set;}

Но что, если моя модель является сущностью (частью модели EF Core, описанной с помощью свободного API EF Core), и я хочу извлечь информацию о проверке из модели EF Core во время выполнения (требуется, длина строки, пользовательские аннотации)? Как добавить правила проверки для поля Title (и не украшать сущность атрибутами, то есть избегать дублирования информации проверки)?

Я мог бы попытаться добавить атрибуты, используя отражение к каждому экземпляру, и это могло бы сработать, но я просто ищу альтернативный API проверки. Это действительно отсутствует?

Конечно, я могу отказаться от стандартной валидации, создать свои собственные функции валидации и загрузить ошибки в ModelState, но затем я потеряю jquery-validation-unobtrusive конфигурацию валидации на стороне клиента.

1 Ответ

1 голос
/ 07 марта 2019

Как добавить правила проверки для поля «Заголовок» (и не украшать сущность атрибутами, то есть избежать дублирования информации проверки)?

Реализация интерфейса IClientModelValidator . Затем используйте отражение против любой модели, которую вы хотите построить для проверки jQuery.

Нет какой-либо автоматической, корпоративной, n-уровневой инфраструктуры, которая бы делала из коробки то, что вы хотите.

Я просто ожидаю, что должен быть альтернативный API конфигурации проверки.

Я считаю, что оба используют Класс валидатора . По умолчанию он может проверяться по интерфейсу IValidatableObject (проверка без атрибутов).

Переполнение стека - как использовать IValidatableObect .

...