Bot框架:退出PromptDialog而不给出答案

时间:2016-12-12 11:52:52

标签: c# botframework

我使用以下方式询问用户是/否问题:

PromptDialog.Confirm(context, AfterChoice_OpenServiceRequest, "Do you want to open a service request?");

用户可以给出是/否答案。但是,如果用户根本不想回答这个问题,而是提出另一个问题呢?除非用户回答是/否,否则它会不断向他们询问相同的问题' n '次数。

我可以将 n = 0 传递给尝试参数,但这仍然需要用户在能够提出其他问题之前至少回答一次是/否。

用户是否可以继续进行并回答其他问题?我怎么处理这个?

2 个答案:

答案 0 :(得分:1)

SDK的预发布版本包含" triggerActions"的概念。您可以使用它们来中断任何Dialog。在下面的示例中,用户可以通过键入" weather":

来中断颜色提示

enter image description here

代码:

bot.dialog('/', function (session) {
    builder.Prompts.choice(session, "What color?", "Red|White|Blue");
});

bot.dialog("weather", function (session) {
    session.send("It's cold and rainy");
    session.endDialog();
}).triggerAction({ matches: /^weather/i});

要获得预发布:

  

npm install -save botbuilder @ next

答案 1 :(得分:0)

在Lars提到的功能发布之前,唯一的选择是创建一个可以继承PromptDialog的新类,或者手动实现对话逻辑。