Проверка поля с помощью FieldReflector

У меня есть свойство, которое из-за предыдущего вопроса я отключил.

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

Но, тем не менее, возможно, что с помощью другого варианта мне нужно выполнить проверку этого поля и отправить сообщение пользователю в зависимости от того, что он выбирает. Можно ли было бы это сделать? Я не знаю, может ли поле быть действительным при использовании «FieldReflector».

заранее спасибо


person jesus    schedule 28.11.2017    source источник
comment
Возможный дубликат Добавление шага проверки в formFlow - Проверить если топпинг есть в наличии   -  person D4RKCIDE    schedule 29.11.2017


Ответы (1)


Да, вы можете использовать класса FieldReflector для реализации вашего требования.

Если вам нужно уведомить пользователя, когда он не прошел проверку, вы можете использовать Отзыв свойство ValidateResult. Если вы хотите всегда отправлять сообщение своему пользователю, вы можете использовать Message() из 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)
person Gary Liu    schedule 29.11.2017