Как автоматически заполнять поля в FormFlow на основе предыдущего ввода

Я использую FormFlow и хотел бы автоматически заполнять некоторые из следующих полей на основе ответов.

Например, в следующем коде, если пользователь отвечает на вопрос о CloudType с помощью NationalCloud, я хотел бы автоматически установить значение ClusterPurpose равным 1 и не запрашивать его значение. В случае, если пользователь ответит CloudType с PublicCloud, я хотел бы попросить ClusterPurpose.

Каков наилучший способ добиться этого?

public static IForm<MyForm> BuildForm()
        {
            var customFormBuilder = CreateCustomFormBuilder<MyForm>();
            return customFormBuilder
                .Field(nameof(CloudType))
                .Field(nameof(NationalCloudType), active: state => !IsPublicCloudChosen(state))
                .Field(nameof(ClusterPurpose))
                .CompleteRequestForm();
        }
    }

Спасибо!


person Ravit D    schedule 17.05.2017    source источник


Ответы (1)


Вы можете установить state.ClusterPurpose при проверке ввода CloudType и скрыть поле ClusterPurpose, если state.CloudType — это NationalCloud.

person Dimitar Dimitrov    schedule 18.05.2017
comment
Спасибо за ответ. Это действительно вариант, я искал более чистый код. Кажется магическим, что значения заполняются при проверке другого поля. Если я не найду ничего лучше, я отмечу это как ответ. - person Ravit D; 21.05.2017