3

在完成我的表格之前,我不需要任何确认。但是,在FormBuilder 类的以下 Build() 方法中,有一个Confirm("这是您的选择吗?\n{ }")*。

    public IForm<T> Build()
    {
        if (!_form._steps.Any((step) => step.Type == StepType.Field))
        {
            var paths = new List<string>();
            FormBuilder<T>.FieldPaths(typeof(T), "", paths);
            IFormBuilder<T> builder = this;
            foreach (var path in paths)
            {
                builder.Field(new FieldReflector<T>(path));
            }
            builder.Confirm("Is this your selection?\n{*}");
        }
        Validate();
        return this._form;
    }

有什么方法可以在调用 build 后从生成的表单中删除此步骤?

            var form =  new FormBuilder<QuestionYourThinking>()
            .OnCompletionAsync(async (context, state) =>
            {
                await context.PostAsync("L'exercice est maintenant terminé. A bientot !");
            })
            .Build();
4

2 回答 2

7

只需使用带ActiveDelegate参数的重载并使方法处理程序返回false,则不会显示确认消息。

return new FormBuilder<QuestionYourThinking>()
    .AddRemainingFields()
    .Confirm("No verification will be shown", state => false)
    .Message("L'exercice est maintenant terminé. A bientot !")
    .Build();

要发送消息,您可以使用 fluent 方法Message

于 2016-05-03T20:57:18.150 回答
0

您可以在 FormBuilder 上使用 .AddRemainingFields()。它不会要求任何确认。当您要为任何特定字段添加自定义确认消息时,应使用 .Confirm。

于 2017-05-27T06:23:14.497 回答