【发布时间】:2021-12-20 16:48:57
【问题描述】:
在一个 blazor 项目中,我使用 Editform 和 Fluentvalidation 以及 Toolbelt.Blazor.HotKeys 作为快捷方式 (ctrl+s) 来提交表单
当我按 ctrl+s 时,会调用 Submit() 方法,但如果表单有错误,则不会显示错误。其实只调用了方法,没有调用提交表单。
你对这个问题有什么建议?
<EditForm Model="@model" OnValidSubmit="Submit">
<FluentValidationValidator />
...
<button type="submit" >save</button>
</EditForm>
@code
{
[Parameter] public CategoryInfo model { get; set; } = new();
private async Task Submit()
{
var validator = new CategoryValidator();
var result = validator.Validate(model);
if (result.IsValid)
{
...
}
}
}
【问题讨论】:
-
请您发布组件的热键设置代码。我猜您已将热键链接到
Submit方法,该方法实际上并未提交表单。 -
@MrCakaShaunCurtis 是的,我只是调用了提交方法,我尝试了
_editContext.Validate(),但它总是返回true -
如果
_editContext.Validate()返回 true,则模型验证。如果有未报告的错误,则说明您的 Fluent 验证代码有问题。
标签: .net-core blazor submit fluentvalidation blazor-editform