如何验证 Blazor EditForm 中的单个字段?

How to validate a single field in Blazor EditForm?

我从 CascadingParameter

得到 EditContext
[CascadingParameter]
public EditContext EditContext { get; set; }

我意识到存在一个 .Validate 方法,它验证 EditForm 的整个 Model

但我只想验证 Model 的一个字段。

谁可以只验证 EditFormModel 的一个字段?

如果你想知道为什么我想要这个...是因为我正在制作一个自定义组件,当值发生变化并且它是一个有效值时,它会做一些事情。

在查看 Peter Morris Library 时,我发现如果要验证非复杂字段,只需创建一个 FieldIdentifier 并调用 EditContext.NotifyFieldChanged(fieldIdentifier) 即可触发字段验证。

所以答案就简单多了:

// Get the FieldIdentifier with the EditContext from the field name
FieldIdentifier fieldIdentifier = EditContext.Field(fieldName);

// Validate the field when notifying change
EditContext.NotifyFieldChanged(fieldIdentifier);

// To check if the field is valid, 
// check if there is any error message. 
return !EditContext.GetValidationMessages(fieldIdentifier).Any();