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

时间:2019-06-26 06:54:02

标签: 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>

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

有人可以解释OnSumbit,OnValidSubmit和OnInvalidSubmit的工作原理吗。

1 个答案:

答案 0 :(得分:3)

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

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

OnInvalidSubmit 当提交的表单无效时被触发。