我正在 .NET 8 中创建具有交互式服务器渲染模式的 Blazor Web 应用程序。
我正在创建一个表单,我想实现验证,但是当我发布时,我发现它们不起作用。
我的代码如下:
public class LevelRiskDTO
{
public int Id { get; set; }
[Required]
public string Level { get; set; }
[Required]
public int QsMin { get; set; }
[Required]
public int QsMax { get; set; }
}
@page "/Create/{Id:int}"
@rendermode InteractiveServer
@inject Service _service;
<EditForm Model="Risk" OnValidSubmit="AddRiskLevel" FormName="Name">
<DataAnnotationsValidator></DataAnnotationsValidator>
<ValidationSummary class="text-danger"/>
<div class="row g-3">
<div class="col-sm-3">
<label for="Level" class="form-label">Nivel</label>
<InputText class="form-control" @bind-Value="Risk.Level" />
<ValidationMessage For="@(() => Risk.Level)" />
</div>
<div class="col-sm-3">
<label for="QsMin" class="form-label">Qs Min.</label>
<InputNumber class="form-control" @bind-Value="Risk.QsMin" />
</div>
<div class="col-sm-3">
<label for="QsMax" class="form-label">Qs Max.</label>
<InputNumber class="form-control" @bind-Value="Risk.QsMax" />
</div>
</div>
<div class="row g-3 pt-4">
<div class="col-sm-1">
<button type="button" class="btn btn-primary rounded-pill" @onclick="AddRiskLevel">Guardar</button>
</div>
</div>
</EditForm>
@code {
[Parameter] public int Id { get; set; }
[SupplyParameterFromForm] public LevelRiskDTO Risk { get; set; } = new();
private void AddRiskLevel()
{
if (Id == 0)
_service.CreateRisk(Risk);
}
}
难道在渲染服务器模式下这不起作用吗?
我创建了一个使用 WebAssembly 渲染模式的项目,但它对我来说也不起作用