#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, спасибо за вашу помощь.