Атрибут проверки работает частично или не работает на Blazor?

#c# #blazor-server-side

Вопрос:

Я пытаюсь решить проблему, которую обнаружил, пытаясь создать пользовательский атрибут проверки в магазине собак моей дочери с помощью blazor.

В принципе, у меня есть следующее свойство:

 [Test] public int? PetAge { get; set; }  

Как вы можете видеть, я собираюсь создать пользовательский атрибут под названием «Тест», поэтому я создал новый класс следующим образом:

 public class Test : ValidationAttribute {   protected override ValidationResult? IsValid(object? value, ValidationContext validationContext)  {  return new ValidationResult("niet! niet!");  } }  

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

При запуске этого кода он просто ничего не возвращает, в форме не отображается ошибка. Теперь я заметил, что если я использую другую версию метода isValid, он работает, единственная проблема в том, что я хотел бы отправить обратно пользовательское сообщение, а не просто результат true/false. Тот, который работает, выглядит следующим образом:

 public override bool IsValid(object? value)  {  return false;  }  

Но в этом случае я должен указать сообщение об ошибке в параметре следующим образом:

 [Test(ErrorMessage("this is not ok!")]  public int? PetAge { get; set; }  

Поскольку эти параметры должны быть постоянными, это была потрясающая идея не только отображать специально созданное сообщение как ошибку и/или иметь доступ к контексту и т. Д…

я делаю что-то не так в своем приложении Blazor? любая помощь будет оценена по достоинству!

Комментарии:

1. Это веб-сборка Blazor или сервер Blazor?

2. Сервер Blazor, спасибо за вашу помощь.