【发布时间】:2021-06-07 15:12:26
【问题描述】:
我有一个自定义 WaterfallDialog,其中一个步骤会提示用户在菜肴中填写一组可变选项(用于餐馆)。
问题是我希望卡片是动态生成的:根据选择的菜,Input.ChoiceSets 的数量会有所不同。我的意思是,cad 本身的布局会因菜肴类型而异。
我的提示是这样的:
private async Task<DialogTurnResult> ConfigureDishStep(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
return await stepContext.PromptAsync("ConfigureDish", new PromptOptions(), cancellationToken);
}
但如您所见,PromptAsync 使用必须使用 AddDialog 在父对话框中注册的 dialogId(“ConfigureDish”)调用提示。这样就无法根据菜肴类型配置卡。如果我必须在使用它之前注册每个提示,并且这是在父对话框的构造函数中完成的:
AddDialog(new AdaptiveCardPrompt(ConfigureDish, CreateAdaptiveCardPromptSettings()));
那么如何为每个ConfigureDishStep提供动态生成的卡片呢?
【问题讨论】:
-
我们能看到你正在使用的这个
AdaptiveCardPrompt类吗?这不是 SDK 的一部分 -
@KyleDelaney 当然!这不是我的,它是另一个“社区”项目的一部分:github.com/BotBuilderCommunity/botbuilder-community-dotnet/tree/…
标签: c# .net botframework adaptive-cards