从另一个对话框启动一个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