我正在尝试向PromptDialog.Choice /或PromptDialog.Text添加自定义数据有效载荷,以指示我的bot客户端特殊活动。
我知道有一个字段可以将InputHint指定给IMessageActivity。 有没有一种方法可以将Inputhint /或自定义标签添加到PromptDialog流中?
答案 0 :(得分:0)
您最好的选择是使用这样的东西:
var options = new PromptOptions()
{
Prompt = MessageFactory.Text("Pick Me!"),
Choices = new List<Choice>()
};
var channelData = new Dictionary<string, string>();
channelData["testKey"] = "testValue";
options.Choices.Add(new Choice()
{
// Value must be set. There's a PR in place to fix this, but for now just leave blank
Value = "",
Action = new CardAction()
{
// PostBack will prevent the user from seeing "Actual Value" after they select it
Type = ActionTypes.PostBack,
Title = "DISPLAYED TEXT",
Value = "ACTUAL VALUE",
}
});
return await stepContext.PromptAsync(nameof(ChoicePrompt), options);
我在代码中留下的注释应该足以说明问题。
另一种解决方案可能是显示一组包含ChannelData
的卡片,然后显示空白文本提示以等待用户的响应。我有a pretty in-depth answer来做这件事。您只需要添加一个ChannelData
property,即可捕获“特殊活动”代码。