【发布时间】:2017-03-06 12:01:24
【问题描述】:
我想知道是否可以使用带有轮播而不是按钮的 PromptDialog。
例如,如果我想提示用户选择,我可以这样做:
public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> result)
{
IEnumerable<string> options = new List<string>
{
"First Option",
"Second Option",
"Third Option",
"Fourth Option"
};
PromptDialog.Choice(context, AfterPromptDialogChoice, options, "Choose an option");
}
private async Task AfterPromptDialogChoice(IDialogContext context, IAwaitable<string> result)
{
string input = await result;
await context.PostAsync(input);
context.Wait(this.MessageReceivedAsync);
}
对我来说,关键是在用户选择一个选项后,我可以在 AfterPromptDialogChoice 方法中处理选择。我想要的是用轮播来提示用户,当他选择其中一个轮播项目时,我想将流程重定向到一个委托方法,在那里我可以根据用户的选择执行一些操作。
我知道使用常规轮播我可以使用 CardAction 发回用户选择的选项,但是此选项的值(文本)将再次发送给机器人,并且与用户选择无关。我只想拥有 PromptDialog.Choice 的行为,但是用轮播来显示选项,而不仅仅是按钮 这可能吗?
【问题讨论】:
标签: c# bots botframework