使用 FieldReflector 验证字段

Validating Field with FieldReflector

我有一个 属性 由于之前的问题我禁用了它。

.Field(new FieldReflector<UploadDocumentForm>(nameof(UploadDocumentForm.StatusContent))
    .SetActive((state) => false))

但尽管如此,我还是有可能需要通过另一个选项对该字段进行验证,并根据用户的选择向用户发送消息。有可能做到吗? 我不知道使用 "FieldReflector".

字段是否有效

提前致谢

是的,您可以利用 FieldReflector Class 中的 SetValidate() 来实现您的要求。

如果您需要在用户验证失败时提示用户,您可以利用 ValidateResultFeedback 属性。如果您想始终向您的用户发送消息,您可以利用 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)