CardAction对象
实际上并没有任何关于将CardAction 与ChoicePrompt 一起使用的文档,因为ChoicePrompts 并不是真的“打算”以这种方式使用。这是可能的,但不是真正的首选。
Here's the reference for the CardAction Class:
显示文本
获取或设置(可选)单击按钮时在聊天提要中显示的文本
图片
获取或设置将出现在按钮上、文本标签旁边的图像 URL
文字
获取或设置此操作的文本
标题
获取或设置显示在按钮上的文字描述
类型
获取或设置此按钮实现的操作类型。可能的值包括:“openUrl”、“imBack”、“postBack”、“playAudio”、“playVideo”、“showImage”、“downloadFile”、“signin”、“call”、“payment”、“messageBack”。 More on ActionTypes
注意:ChoicePrompt 需要 imBack ActivityType,因此使用其他类型可能会产生一些奇怪的结果。
价值
获取或设置操作的补充参数。该属性的内容取决于 ActionType
标题与文本
鉴于CardAction:
new Choice()
{
Action = new CardAction()
{
Type = "messageBack",
Value = "ACTION VALUE",
Title = "TITLE",
Text = "TEXT",
},
Value = "CARD VALUE",
});
这将产生:
点击时:
所以,Title 是按钮上显示的文本。 Text 是作为消息发送回机器人的文本。如果Value 存在于CardAction 中,它将作为活动的value 发送。
虫子
我也看到你submitted this question to GitHub。我将在此处复制响应。
问题不在于您不能有一个空的Choice.Value,而是从CardAction 中提取Choices 并尝试确定要为选项显示的最大文本长度, ChoiceFactory 错误地查看了Choice.Value,而它为空而不是查看Choice.Action.Title。有关修复,请参阅PR。