Добавление и удаление аннотаций данных из кода - PullRequest
3 голосов
/ 18 августа 2010

Можно ли добавлять и удалять аннотации данных, в частности [требуемые], со стороны кода? Моя проблема в том, что я хочу дать пользователю возможность сохранять неполную форму в наших приложениях CRUD, но в то же время использовать возможности проверки DataAnnotations.

Если это невозможно, как лучше всего это сделать?

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Вы можете сохранить атрибуты DataAnnotation в вашей модели, а затем просто вручную удалить ошибки проверки по мере необходимости из кода.Это может выглядеть примерно так:

if (certainCondition == true) {
   ModelState["someKey"].Errors.Clear();
   ModelState["anotherKey"].Errors.Clear();
}
0 голосов
/ 25 апреля 2013

Невозможно динамически добавлять, удалять или изменять DataAnnotations, поскольку они являются Атрибутами.Атрибуты являются частью типа и не могут быть изменены во время выполнения.

Вы можете использовать ModelState, как предложил Ларсенал, при условии, что:

  • вы используете его после выполнения проверки.(до этого ModelState будет пустым. Он не обеспечивает доступ ко всем валидаторам, он только сохраняет ошибки валидатора после их возникновения)
  • у вас нет какой-либо проверки на стороне клиента, основанной наDataAnnotationValidators и выдает ошибки, которые не позволяют вам даже достичь проверки на стороне сервера.
...