【问题标题】:Confirmation missing in FormFlowFormFlow 中缺少确认
【发布时间】:2017-07-06 05:56:40
【问题描述】:

我遵循了 HotelBol 教程,主要思想是我有一个 FormFlow。在模型之后,我添加了一个名为 BedSize 的字段(它是一个枚举),然后我添加了所有剩余的字段。到目前为止一切顺利。

public static IForm<RoomReservation> BuildForm()
{
    return new FormBuilder<RoomReservation>()
        .Message("Welcome to the hotel reservation bot!")
        .Field(nameof(BedSize))
        .AddRemainingFields()
        .Build();
}

我的问题是我最终希望从确认消息中获得默认确认。我面临的问题是 FormBuilder 中的 Build 方法有该确认,但对我来说,它没有出现。

但是,如果我将代码更改为:

public static IForm<RoomReservation> BuildForm()
{
    return new FormBuilder<RoomReservation>()
        .Message("Welcome to the hotel reservation bot!")
        .Build();
}

它还会触发确认消息。有什么我想念的吗?我想知道为什么添加.Field 和/或.AddRemainingFields 方法会使确认消息消失。

【问题讨论】:

  • 您是否发现任何错误?
  • @JasonSowers 没有错误,一切正常。

标签: c# botframework chatbot formflow


【解决方案1】:

我看到的每个示例都使用带有自定义消息的.Confirm()。使用 .Field().AddRemainingFields() 时请参阅下面带注释的三明治机器人

例如,在我们的表单流示例中,Simple sanwich bot 不使用 .Field().AddRemainingFields() 并且自动确认工作。而Annotated Shandwich Bot 使用.Field().AddRemainingFields() .Confirm

基本上,您似乎需要提出一个自定义确认实现,您可以在其中使用 .Field().AddRemainingFields() 祝你好运。

【讨论】:

  • 我看到了这个例子,但我担心的是,如果你深入研究聊天机器人的实现,你会看到.Build() 的类最终负责调用.Confirm() 扩展方法,但似乎在使用一些额外的扩展方法时,.Build() 的行为不像写入的那样,并且一些中间件会干扰它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
  • 2014-12-11
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多