从对话框调用表单
我有一个简单的表格,
[Serializable] class CreateNewLeadForm { public string FirstName; public string LastName; public static IForm BuildForm() { return new FormBuilder() .Message("Lets create a New Lead") .Field(nameof(FirstName)) .Field(nameof(LastName)) .Build(); } };
还有一个简单的对话框,
public class GreetDialog : IDialog { public async Task StartAsync(IDialogContext context) { context.Wait(MessageReceivedAsync); } public async Task MessageReceivedAsync(IDialogContext context, IAwaitable argument) { context.Wait(MessageReceivedAsync); } }
如何从主对话本身调用启动FormDialog? 一般来说,我们如何在Dialog中开始新的对话框?
要启动FormDialog,您可以执行以下操作:
var myform = new FormDialog(new CreateNewLeadForm(), CreateNewLeadForm.BuildForm, FormOptions.PromptInStart, null); context.Call (myform, FormCompleteCallback);
看看PizzaBot就是一个例子。
要在Dialog中启动新对话框,您可以执行以下操作:
- context.Call传递新对话框的实例和完成回调(如表格中所示)
-
context.Forward,您可以将消息转发到子对话框
context.Forward(new MyChildDialog(),ResumeAfterChildDialog,message,CancellationToken.None);
- 从Microsoft Bot Framework Channel查找Skype的用户名
- 将模型和订阅密钥传递给LuisDialog而不是通过属性
- 如何在使用Microsoft Bot Framework时使用CSS设置聊天窗口的样式
- 将图像上传到Skype BOT
- 当用户向我的机器人发送消息时,他会收到欢迎消息。 但是当用户响应时,bot会再次发送欢迎消息。 我怎样才能解决这个问题?
- 如何在conversationUpdate活动中获取区域设置?
- 如何在Microsoft Bot Framework中避免“抱歉,我的机器人代码有问题”
- 使用MicrosoftBot的FormBuilder跳过确认步骤
- BotFramework:’状态大小超出配置限制。’