Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FormFlow和建议的行动_C#_Botframework_Formflow - Fatal编程技术网

C# FormFlow和建议的行动

C# FormFlow和建议的行动,c#,botframework,formflow,C#,Botframework,Formflow,我正在使用带有枚举的FormFlow来呈现一些问题,但FormFlow似乎是将它们呈现为带有按钮的HeroCard,我希望提示呈现为建议的操作,以便在FB中显示为快速回复,这样做的最佳方式是什么? 现在,我实现了一个自定义提示器,如下所示,但我想知道是否有更好的方法来处理属性,这样我就不需要编写自定义代码了 private static async Task<FormPrompt> Prompter(IDialogContext context, FormPrompt prompt,

我正在使用带有枚举的FormFlow来呈现一些问题,但FormFlow似乎是将它们呈现为带有按钮的HeroCard,我希望提示呈现为建议的操作,以便在FB中显示为快速回复,这样做的最佳方式是什么? 现在,我实现了一个自定义提示器,如下所示,但我想知道是否有更好的方法来处理属性,这样我就不需要编写自定义代码了

private static async Task<FormPrompt> Prompter(IDialogContext context, FormPrompt prompt, JObject state, IField<JObject> field)
    {
        IMessageActivity promptMessage;

        // Handle buttons as quick replies when possible (FB only renders 11 quick replies)
        if (prompt.Buttons.Count > 0 && prompt.Buttons.Count <= 11)
        {
            // Build a standard prompt with suggested actions. 
            promptMessage = context.MakeMessage();
            promptMessage.Text = prompt.Prompt;
            var actions = prompt.Buttons.Select(button => new CardAction
                {
                    Type = ActionTypes.ImBack,
                    Title = button.Description,
                    Value = button.Description
                })
                .ToList();
            promptMessage.SuggestedActions = new SuggestedActions(actions: actions);
        }
        else
        {
            promptMessage = await Extensions.GetDefaultPrompter(context, prompt);
        }

        await context.PostAsync(promptMessage);
        return prompt;
    }
private静态异步任务提示器(IDialogContext上下文、FormPrompt提示、JObject状态、IField字段)
{
i消息活动提示消息;
//尽可能将按钮处理为快速回复(FB仅呈现11个快速回复)
如果(prompt.Buttons.Count>0&&prompt.Buttons.Count新卡片操作
{
Type=ActionTypes.ImBack,
标题=按钮。说明,
值=按钮。说明
})
.ToList();
promptMessage.SuggestedActions=新的SuggestedActions(操作:操作);
}
其他的
{
promptMessage=await Extensions.GetDefaultPrompter(上下文,提示符);
}
wait context.PostAsync(promptMessage);
返回提示;
}

如果您想要此功能,则必须坚持您的实现。Formflow试图尽可能抽象,将枚举选项呈现为带有按钮的Herocard就是其结果。这是因为几乎所有渠道都支持HeroCard,只有facebook支持快速回复