Поддержка валидации DataAnnotations для Blazor предназначена для работы как с полем формы, так и с общей моделью в контексте редактирования. Вы можете расширить поведение проверки согласно инструкциям в документации здесь.
РЕДАКТИРОВАТЬ Один способ, которым это все еще может работать, - опустить строка <ValidationSummary />
внутри компонента EditForm
, и сохраните отдельный <ValidationMessage />
для каждого поля формы. Вы теряете общее резюме, но оно будет работать.
В качестве альтернативы вы также можете ограничить Контекст в инициализированном методе значением _editContext = new EditContext(_model.Name);
, поэтому вы рассматриваете только свойство Name в контексте редактирования, однако это приведет к исключению нулевой ссылки, если вы также не настроите свой MyModel.Name
свойство для инициализации в пустую строку, например, так: public string Name { get; set; } = "";
. В этом случае вы должны добавить еще одну аннотацию данных к Name
, чтобы указать минимальную длину, чтобы убедиться, что пользователь все еще должен что-то вводить.
Возможно, больший вопрос в том, что если требуется адрес электронной почты, почему вы не фиксируете его и в форме? И наоборот, если вам не нужно захватывать его, зачем включать его в модель?
Более простой вариант для этого варианта использования - ограничить вашу модель только тем, с чем вы работаете напрямую. Если вам действительно нужно обойти проверку свойства Email, помните, что DataAnnotations
, которым вы украшаете свои свойства, предназначены для работы с некоторой формой проверки. Вам может быть лучше использовать объект передачи данных в контексте этой формы только для того, что захватывает только того, что вам нужно в данный момент, например, свойство Name, и затем назначает его для более крупной модели в зависимости от ситуации с помощью programmati c Установить метод после того, как вы его проверили, а не то, что выполняет валидацию. Это, конечно, отрицательно сказывается на цели аннотации, поэтому подумайте над тем, что имеет смысл. Это зависит от вас.