【发布时间】:2018-05-21 15:33:30
【问题描述】:
我在一个项目处理来自 AdaptiveCards 的操作时遇到了麻烦。我的方法在我所有其他项目中都非常有效,只是不是最近的。我尝试回滚 bot.builder 和 bot.connector 的版本以匹配其他项目,但这并没有帮助。
卡片显示正常,但当您点击按钮时,您会看到老旧的“抱歉,我的机器人代码有问题”。我在 RootDialog 中显示卡片,并调用 context.wait(MessageReceivedAsync)
调试,如果我在显示卡后向机器人键入内容 MessageReceivedAsync 被触发。单击按钮,永远不会到达那里。直接在 MessageController 中设置一个断点,它会到达那里,但进入它会立即死亡并显示“抱歉,我的机器人代码有问题。”
这是我的 MessageController:
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
await Conversation.SendAsync(activity, () => new RootDialog());
}
这是自适应卡片操作:
"actions": [
{
"type": "Action.Submit",
"title": "Create On-Line Request",
"data": {
"action": "requestContact"
}
}
] }
在我的 RootDialog 中:
await context.PostAsync(CardHelper.MakeCard(context, "~\\AdaptiveCards\\ContactInfo311.json", replacements));
context.Wait(MessageReceivedAsync);
【问题讨论】:
标签: botframework adaptive-cards