2017-02-22 104 views
2

Я использую C# в .Net-Core MVC, и у меня есть форма, которую пользователи должны будут заполнить.Как проверить некоторые поля некоторое время?

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

Если я положил тэг [Обязательный] во все поля модели, когда я проверяю ModelState, он помещает не отображаемые поля как недействительные.

Есть ли способ, который, когда я пытаюсь проверить ModelState, могу проверить только поля, отображаемые на странице, и игнорировать скрытые поля?

Спасибо.

ответ

0

Если я поставил [обязательно] тег на все поля в модели, когда я проверки ModelState, он помечает не отображаются поля как недействительные.

Конечно, если вы задали параметр «Обязательный». Отключите этот параметр из полей, которые не могут быть отображены, или make nullable

1

К сожалению, [Required] работает по всему миру в MVC.

Вам нужно будет разработать свои собственные атрибуты проверки. Надеюсь, кто-то уже сделали это, но для MVC с .NET Framework (see the code here):

Для валидаций, который имеет вид: «Подтвердить это поле только тогда, когда это другое поле имеет определенное значение», я кодированные 3 атрибутов : RequiredIf, RangeIf и RegularExpressionIf, которые наследуются от ValidationAttribute.

Теперь вам нужно будет перевести его для работы в .NET Core.

Если вы ищете более общее решение, структура веб-форм имеет очень хорошую концепцию Группа проверки. Он позволяет проверять - или нет - логически сгруппированные свойства.

 Смежные вопросы

  • Нет связанных вопросов^_^