Bot Framework (.Net) - 使用 PromptDialog.Choice() 发送带有按钮的附加参数

Bot Framework (.Net) - Send additional parameters with button using PromptDialog.Choice()

我正在尝试使用 .Net 学习 Bot Framework,我有一个显示按钮并根据所选选项显示更多按钮或列表的应用程序。我想要的是,用按钮发送一个隐藏的 ID/parameter ,这样当用户点击按钮时,我可以访问隐藏的参数。我没有为此使用卡片。我只想显示按钮。谁能帮我这个?我知道这可能是一个非常基本的问题,但如果没有卡片我找不到如何解决这个问题。

首先,PromptDialog.Choice在幕后创建了一个带有多个按钮的HeroCard(基本上是PromptOptions传递的,见the code

传递隐藏参数的一种方法是为您的按钮指定 ActionType PostBack 并使用隐藏参数填充 Value 属性。 PostBack 是这里的方法,因为消息将发布到机器人,但客户端应用程序不会显示此消息(但是,请注意并非所有渠道都支持回发操作类型)。有关详细信息,请参阅 this

现在,由于您使用的是 PromptDialog.Choice,因此您必须重写某些内容才能指定 PostBack 操作类型,因为默认情况下,使用 Choice 创建的按钮正在使用ImBack(根据 this code

您必须组合使用的自定义 PromptStyler, override the Apply<T> method and add your logic to change the action type and set the buttons in the way you want based on the PromptStyle 并将该自定义样式器传递给 PromptDialog.Choice

默认情况下 PromptDialog.Choice 使用 PromptStyle.Auto。