其他分享
首页 > 其他分享> > 从另一个对话框启动一个FormFlow对话框

从另一个对话框启动一个FormFlow对话框

作者:互联网

我的机器人包括一个主要的LuisDialog和其他两个对话框.当我得到某个LuisIntent时,我启动了其他对话框之一(即示例Echo Bot),当我结束该对话框时,它将返回主LuisDialog没问题.

当我得到LuisIntent启动另一个对话框(即FormFlow对话框)时,它确实很高兴地启动了对话框,但是用户必须在对话框运行之前输入一些内容.因此,用户输入“订购三明治”,然后在进入对话框中的第一条消息之前必须输入其他任何内容.

是否有人知道谁可以启动FormFlow或什至任何形式的Dialog并直接跳入对话框而无需等待用户输入任何内容?我用来启动三明治对话框的代码如下:

    internal static IFormDialog<SandwichBot.SandwichOrder> MakeRootDialog()
    {


        return FormDialog.FromForm(SandwichBot.SandwichOrder.BuildForm);
    }

    [LuisIntent("OrderSandwich")]
    public async Task StartSandwichOrder(IDialogContext context, LuisResult result)
    {
        IFormDialog<SandwichBot.SandwichOrder> tmp = MakeRootDialog();
        context.Call(tmp, SandwichOrderComplete);
    }

解决方法:

好,排序.制作表单时我错过了FormOptions.因此,MakeRootDialog应该已经

        internal static IFormDialog<SandwichBot.SandwichOrder> MakeRootDialog()
    {
        return FormDialog.FromForm(SandwichBot.SandwichOrder.BuildForm,options: FormOptions.PromptInStart);
    }

标签:botframework,dialog,formflow,c
来源: https://codeday.me/bug/20191118/2030876.html