首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数之后,Microsoft BotFramework FormFlow PromptInStart跳过简历。

函数之后,Microsoft BotFramework FormFlow PromptInStart跳过简历。
EN

Stack Overflow用户
提问于 2017-10-14 10:52:33
回答 1查看 234关注 0票数 0

我正在尝试从一个FormFlow启动一个LuisDialog:

代码语言:javascript
复制
[LuisIntent("bookConfRoom")]
public async Task BookConferenceRoom(IDialogContext context, LuisResult result)
{
     IDialog<RoomBooking> roomBookingDialog = MakeRootDialog();
     context.Call(roomBookingDialog, RoomBookingComplete);
}

MakeRootDialog()构建FormFlow表单:

代码语言:javascript
复制
internal static IDialog<RoomBooking> MakeRootDialog()
{
     return Chain.From(() => 
        FormDialog.FromForm(RoomBooking.BuildForm, options: FormOptions.PromptInStart));
}

RoomBooking看起来是这样的:

代码语言:javascript
复制
[Serializable]
public class RoomBooking
{
    public LocationOptions MeetingLocation;
    public DateTime MeetingTime;
    public double NumberOfHours;
    public int NumberOfAttendees;
    public List<AmenitiesOptions> Amenities;

    public static IForm<RoomBooking> BuildForm()
    {
        return new FormBuilder<RoomBooking>().Build();
    }
}

当这个意图被击中时,RoomBookingComplete函数之后的简历就会立即运行,而不会出现FormFlow。但是,如果我删除了FormOptions.PromptInStart,那么FormFlow就会运行,但是您必须在机器人启动之前向它发送另一条消息,这就是我认为PromptInStart会修复的吗?

我想我被对话框堆栈的顺序和/或我所处的对话上下文搞混了。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-10-17 13:15:53

您应该删除Chain.From

代码语言:javascript
复制
internal static IDialog<RoomBooking> MakeRootDialog()
{
     return FormDialog.FromForm(RoomBooking.BuildForm, options: FormOptions.PromptInStart));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46743684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档