从循环中的Botbuilder调用FormDialog

时间:2017-02-19 16:08:47

标签: c# .net botframework luis botbuilder

Hy,有没有选择在Luis-Match功能中创建第二个FormDialog。 我的LUIS实例找到一种或多种饮料,例如:

  • 我需要一个[水]。

  • 我需要[茶]和[可乐]。

如果有多个实体,我会要求每个实体提供其他信息。

[LuisIntent("Drinks")]
public async Task Bestellung(IDialogContext context, LuisResult result)
{
    entities1 = ... // entities for first drink
    entities2 = ... // entities for second drink

    orderForm1 = new FormDialog<Drink>(new Drink(), formFunction, FormOptions.PromptInStart, entities1);
    await context.Forward(orderForm1, afterFormFunction);
    orderForm2 = new FormDialog<Drink>(new Drink(), formFunction, FormOptions.PromptInStart, entities2);
    await context.Forward(orderForm2, afterFormFunction);
}

我得到例外:&#34;无效需要:预期通话,有民意调查&#34;

我的错在哪里?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

对第二个表单对话框的调用必须在afterFormFunction ResumeAfter<T>方法中完成,而不是在第一个context.Forward之后。

第一个表单对话框结束后,继续执行afterFormFunction