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

时间:2020-07-06 12:14:17

标签: c# blazor data-annotations blazor-server-side blazor-client-side

我从EditContext获得了CascadingParameter

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

我意识到存在一个.Validate方法,该方法可以验证Model中整个EditForm

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

谁只能验证ModelEditForm的一个字段?

如果您想知道为什么要这样做...是因为我正在制作一个自定义组件,当值更改且它是有效值时,它将执行某些操作。

1 个答案:

答案 0 :(得分:1)

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

所以答案要简单得多

// Create FieldIdentifier with the Model and the field name
var fieldIdentifier = new FieldIdentifier(EditContext.Model, 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();