使用 FieldReflector 验证字段
Validating Field with FieldReflector
我有一个 属性 由于之前的问题我禁用了它。
.Field(new FieldReflector<UploadDocumentForm>(nameof(UploadDocumentForm.StatusContent))
.SetActive((state) => false))
但尽管如此,我还是有可能需要通过另一个选项对该字段进行验证,并根据用户的选择向用户发送消息。有可能做到吗?
我不知道使用 "FieldReflector".
字段是否有效
提前致谢
是的,您可以利用 FieldReflector
Class 中的 SetValidate()
来实现您的要求。
如果您需要在用户验证失败时提示用户,您可以利用 ValidateResult
的 Feedback 属性。如果您想始终向您的用户发送消息,您可以利用 Message()
of FormBuilder
.
这是代码片段:
...
private static string msg = "default";
...
...
.Field(new FieldReflector<Classification>(nameof(Choice))
.SetValidate(async (state, value) => {
var selection = (<ClassName>)value;
bool isValid = (int)selection > 2;
msg = $"Select Value is {selection}";
ValidateResult result = new ValidateResult
{
IsValid = isValid,
Value = selection,
};
if (!isValid)
{
result.Feedback = msg;
}
return result;
})
)
.Message(msg)
我有一个 属性 由于之前的问题我禁用了它。
.Field(new FieldReflector<UploadDocumentForm>(nameof(UploadDocumentForm.StatusContent))
.SetActive((state) => false))
但尽管如此,我还是有可能需要通过另一个选项对该字段进行验证,并根据用户的选择向用户发送消息。有可能做到吗? 我不知道使用 "FieldReflector".
字段是否有效提前致谢
是的,您可以利用 FieldReflector
Class 中的 SetValidate()
来实现您的要求。
如果您需要在用户验证失败时提示用户,您可以利用 ValidateResult
的 Feedback 属性。如果您想始终向您的用户发送消息,您可以利用 Message()
of FormBuilder
.
这是代码片段:
...
private static string msg = "default";
...
...
.Field(new FieldReflector<Classification>(nameof(Choice))
.SetValidate(async (state, value) => {
var selection = (<ClassName>)value;
bool isValid = (int)selection > 2;
msg = $"Select Value is {selection}";
ValidateResult result = new ValidateResult
{
IsValid = isValid,
Value = selection,
};
if (!isValid)
{
result.Feedback = msg;
}
return result;
})
)
.Message(msg)