0
我創建了一個Bot Framework項目,並使用LUIS意圖和實體來填充AdaptiveCard的字段,然後將其附加到活動併發布給用戶。我已經放在一個SubmitAction作爲卡的一部分,以及相關的代碼如下:如何檢索由AdaptiveCard在Microsoft Bot Framework中發佈的表單數據?
[LuisIntent("Query GPN")]
public async Task QueryGPN(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
{
EntityRecommendation GPN;
AdaptiveCard gpnCard = new AdaptiveCard();
gpnCard.Body.Add(new TextBlock()
{
Text = "GPN Lookup Form",
Size = TextSize.Large,
Weight = TextWeight.Bolder
});
gpnCard.Body.Add(new TextBlock()
{
Text = "GPN",
Weight = TextWeight.Bolder
});
TextInput gpnInput = new TextInput()
{
Id = "GPN",
IsMultiline = false
};
gpnCard.Body.Add(gpnInput);
gpnCard.Actions.Add(new SubmitAction()
{
Title = "Submit"
});
if (result.TryFindEntity("GPN", out GPN))
{
await context.PostAsync($"You want to know about a GPN {GPN.Entity}? Prepopulating form.");
gpnInput.Value = GPN.Entity;
}
else
{
await context.PostAsync("It seems like you wanted to know about a GPN, but I couldn't find a GPN in your request.");
}
Attachment gpnCardAttachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = gpnCard
};
IMessageActivity gpnFormMessage = context.MakeMessage();
gpnFormMessage.Attachments = new List<Attachment>();
gpnFormMessage.Attachments.Add(gpnCardAttachment);
await context.PostAsync(gpnFormMessage);
context.Done<IMessageActivity>(null);
}
我想,當用戶點擊提交按鈕,這似乎找回這種形式的內容發送消息活動到我的MessagesController中的Post方法。但是,此消息活動的內容爲空。如何從此消息活動中檢索與提交操作相關的負載?在上面的例子中,我將如何檢索「GPN」鍵的值?我試圖尋找的附件,但它似乎並沒有在那裏還有:點擊Submit
按鈕後