如何验证 Blazor EditForm 中的单个字段?
How to validate a single field in Blazor EditForm?
我从 CascadingParameter
得到 EditContext
[CascadingParameter]
public EditContext EditContext { get; set; }
我意识到存在一个 .Validate
方法,它验证 EditForm
的整个 Model
。
但我只想验证 Model
的一个字段。
谁可以只验证 EditForm
的 Model
的一个字段?
如果你想知道为什么我想要这个...是因为我正在制作一个自定义组件,当值发生变化并且它是一个有效值时,它会做一些事情。
在查看 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();
我从 CascadingParameter
EditContext
[CascadingParameter]
public EditContext EditContext { get; set; }
我意识到存在一个 .Validate
方法,它验证 EditForm
的整个 Model
。
但我只想验证 Model
的一个字段。
谁可以只验证 EditForm
的 Model
的一个字段?
如果你想知道为什么我想要这个...是因为我正在制作一个自定义组件,当值发生变化并且它是一个有效值时,它会做一些事情。
在查看 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();