Мне нужно выбрать, когда проверять определенные поля модели в компоненте Blazor, особенно при отправке. Итак, мне нужно выяснить, как вручную проверять значения модели, чтобы я мог использовать встроенные обработчики ошибок для обработки отображения ошибок.
Пример:
If you choose RadioValue: type A
only validate Textfield 1,
do not validate Textfield 2, Textfield 3
If you choose RadioValue: type B
validate Textfield 1, Textfield 2, and Textfield 3
If you choose RadioValue: type C
validate no fields
Любые поля не являются проверенные устанавливаются за кулисами при отправке.
Дополнительные примечания:
Использование пользовательских компонентов радиовхода, поскольку MS их не предоставляет. Однако у них есть пример одного в их документах , так что мой по сути является его клоном.
Я пытался прослушивать события с помощью OnFieldsChanged, чтобы получить поля, но у меня нет способа A) Проверка определенной модели c B) Обеспечение сообщения об ошибке связано с этой моделью и работает с компонентом ValidationMessage.
Кажется Я могу только проверить, является ли eveything действительным, используя EditContext.Validate (), но я не могу выбрать, что проверять.
Также, если бы я мог проверить с атрибутами и без, это сделало бы все проще.
версия проверки MS на отдельном сервере, я бы предпочел то же приложение, но они не объясняют, как они проверяют значения и возвращают ошибку.
<EditForm EditContext="@_editContext" OnSubmit="@HandleSubmit">
...
<button type="submit">Submit</button>
</EditForm>
@code {
private Starship _starship = new Starship();
private EditContext _editContext;
protected override void OnInitialized()
{
_editContext = new EditContext(_starship);
}
private async Task HandleSubmit()
{
var isValid = _editContext.Validate() &&
await ServerValidate(_editContext);
if (isValid)
{
...
}
else
{
...
}
}
private async Task<bool> ServerValidate(EditContext editContext)
{
var serverChecksValid = ...
return serverChecksValid;
}
}
Вскоре я приведу пример своего кода, чтобы предоставить больше контекста, но я надеюсь, что, возможно, его можно решить без него.