Я создал приложение LUIS Template Bot (версия 3), и мне нужно захватить выходные данные выпадающего списка Adaptive Card. В настоящее время я могу создать и отобразить раскрывающийся список, но столкнулся с трудностями при получении результата после нажатия кнопки. Можете ли вы дать мне решение или дать ссылку на соответствующий учебник для версии 3, поскольку ресурсы для этой проблемы в основном для версии 4.
public Attachment PolicyAdaptiveCard()
{
var card = new AdaptiveCard();
var choices = new List<AdaptiveChoice>();
choices.Add(new AdaptiveChoice()
{
Title = "Category 1",
Value = "c1"
});
choices.Add(new AdaptiveChoice()
{
Title = "Category 2",
Value = "c2"
});
var choiceSet = new AdaptiveChoiceSetInput()
{
IsMultiSelect = false,
Choices = choices,
Style = AdaptiveChoiceInputStyle.Compact,
Id = "Category"
};
card.Body.Add(choiceSet);
card.Actions.Add(new AdaptiveSubmitAction() { Title = "Select Category", Data = Newtonsoft.Json.Linq.JObject.FromObject(new { button = "select" }) });
Attachment attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = card,
Name = $"Card"
};
return attachment;
}
Это вывод JSON, который я записываю в Bot Emmulator
{
"channelData": {
"clientActivityID": "15547009411880.yfus2yy2mao",
"postBack": true
},
"channelId": "emulator",
"conversation": {
"id": "3f50f7c1-59be-11e9-98bd-17dcaa70e8d3|livechat"
},
"from": {
"id": "r_tckd4zoa8h",
"name": "User",
"role": "user"
},
"id": "48d27080-59be-11e9-93ff-a77a4eb2d000",
"localTimestamp": "2019-04-08T08:22:21+03:00",
"locale": "en-US",
"recipient": {
"id": "97e06f60-496a-11e9-9541-3d37a55e03cc",
"name": "Bot",
"role": "bot"
},
"serviceUrl": "http://localhost:56373",
"showInInspector": true,
"timestamp": "2019-04-08T05:22:21.192Z",
"type": "message",
"value": {
"Category": "c1",
"button": "select"
}
}
Как я могу прочитать значение и вывести «c1» в следующем методе? Это код, которому я следую. Можете ли вы дать мне метод, который я могу использовать для определения значения категории
var reply = context.MakeMessage();
var activityValue = context.Activity.AsMessageActivity().Value as Newtonsoft.Json.Linq.JObject;
if (activityValue != null)
{
var categorySelection = activityValue.ToObject<CategorySelection>();
var category = categorySelection.Category;
await context.PostAsync(reply);
}