【问题标题】:Starting a FormFlow Dialog From Another Dialog从另一个对话框启动 FormFlow 对话框
【发布时间】:2017-05-16 01:58:52
【问题描述】:

我的机器人由一个主要的 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);
    }

【问题讨论】:

    标签: c# dialog botframework formflow


    【解决方案1】:

    好的,已排序。制作表单时我错过了 FormOptions。所以,MakeRootDialog 应该是

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多