下面是我的代码,一个 fluenteditform 表单。提交后,系统提示我填写了字段,但仍然需要填写。我的代码有什么问题?
@page "/movieform"
@using Assignment10.Entities
@using System.ComponentModel.DataAnnotations
<h3>MovieForm</h3>
<FluentCard>
<FluentEditForm FormName="MovieForm" Model="@movie">
<DataAnnotationsValidator />
<FluentValidationSummary />
<FluentGrid>
<FluentGridItem xs="12">
<FluentTextField Name="MovieNameField" Id="movieNameField" @bind-Value="movie.MovieName" Label="Name: " Required/>
<ValidationMessage For="@(() => movie.MovieName)" />
</FluentGridItem>
<FluentGridItem xs="12">
<FluentTextField Name="MoviePublisherField" Id="moviePublisherField" @bind-Value="movie.Publisher" Label="Publisher: " Required/>
<ValidationMessage For="@(() => movie.Publisher)" />
</FluentGridItem>
<FluentGridItem xs="12" >
<FluentTextField Name="MovieDescriptionField" Id="movieDescriptionField" @bind-Value="movie.MovieDescription" Label="Description: " Required/>
<ValidationMessage For="@(() => movie.MovieDescription)" />
</FluentGridItem>
<FluentGridItem xs="12" >
<FluentButton Type="ButtonType.Submit" Appearance="Appearance.Accent">Submit</FluentButton>
</FluentGridItem>
</FluentGrid>
</FluentEditForm>
</FluentCard>
@code {
private Movie movie = new Movie();
}
您使用
<DataAnnotationsValidator />
- 这就是您的验证器尚未收到数据的原因 - 它尝试将数据传递给DataAnnotations基础设施。在我的项目中,我没有使用库。相反,我使用
FluentValidationValidator
组件的自定义实现,代码如下所示:以及组件本身(在 stackoverflow 上找到的代码):
它对我的几个项目有用。优点是您可以扩展组件并添加一些自定义逻辑(如果需要)。缺点是您需要在项目中支持它。因此,如果您决定不支持,您可以尝试使用此链接中的某些内容。
希望对您有帮助。