验证未在OnSubmit上触发,但在OnVallidSubmit上触发

Kru*_*mar 0 blazor

我在blazor中有简单的形式,如下所示。

    <EditForm Model="@createInvoice"  OnValidSubmit="@CreateInvoice" >
    <DataAnnotationsValidator></DataAnnotationsValidator>
    <p>
        <label for="ddlService">Service</label>
        <InputSelect id="ddlService" @bind-Value="@createInvoice.SelectedService">
            <option value="0">Select Service</option>
            @foreach (var item in Services)
            {
                <option value="@item.ServiceId">@item.Name</option>
            }
        </InputSelect>
        <ValidationMessage For="@(()=> createInvoice.SelectedService)"></ValidationMessage>
    </p>
</EditForm>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用数据注释属性来验证表单。使用editform的OnSubmit提交表单,但在提交之前未触发验证。如果我使用OnValidSubmit,它将触发验证。

有人可以解释OnSumbit,OnValidSubmit和OnInvalidSubmit如何工作。

Chr*_*nty 5

提交表单时都会触发OnSubmit。使用此事件时,您负责处理模型的所有验证。

仅当模型状态有效时才触发OnValidSubmit。使用此事件时,将为您调用所有验证逻辑,并且仅在模型状态有效时才调用您传递的委托。

当提交的表单无效时,将触发OnInvalidSubmit