c# - 如何将 Prompt.Choice() 的结果转发到当前对话框?

标签 c# botframework

我正在使用 PromptDialog.Choice() 向用户呈现不同的选项。尝试次数设置为 0,因此如果他们输入的内容不是有效选项,则不会进行任何重试。

在这种情况下,我想将输入的文本传递给当前的对话框,该对话框已呈现提示并让它处理消息。

这样做的正确方法是什么?我尝试在提示对话框的简历处理程序中创建一个新事件,并直接调用 MessageReceivedAsync() 方法,但 a) 未按预期工作,b) 似乎是一个 hack。

一个示例是询问“我不确定您想要做什么。显示帮助还是继续尝试?”的提示。有两个选项“帮助”和“继续尝试”。但是,如果用户现在输入“什么是一加一?”,我希望当前对话框能够处理这个问题。

我也可以问不同的问题:如何用另一个对话框替换堆栈顶部的当前对话框?这将允许我调用同一个对话框。

最佳答案

我认为调用 MessageReceivedAsync 将是这里的方法。关键是从您正在创建的事件传递一个 IAwaitable

代码应该是这样的:

await MessageReceivedAsync(context, Awaitable.FromItem(yourActivity));

关于c# - 如何将 Prompt.Choice() 的结果转发到当前对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45350348/

相关文章:

c# - 标签转义字符?

c# - 从 c# 将 rdl 报告导出到多张 excel 文件有问题

c# - 机器人框架 v4 : ReplaceDialogAsync A dialog with an id of 'X' wasn't found

c# - Bot框架获取内嵌聊天控制页面的ServiceUrl

c# - 机器人框架 : How to exit Conversation?

c# - 用双反斜杠替换单反斜杠

c# - 在 VS2015 社区中使用 ASP.NET 5 时的 "Cannot resolve symbol ' 系统 '"和其他命名空间

c# - 配置文件篡改检测

botframework - 在 Microsoft Teams 选项卡中打开 URL

c# - 带有提示按钮的主动消息传递 - Microsoft Bot Framework