Microsoft Bot Framework自适应卡片不能正确渲染

问题描述:

我试图在自己的luis响应中添加自适应卡片,并遵循指南:https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-add-rich-card-attachmentsMicrosoft Bot Framework自适应卡片不能正确渲染

我的按钮怎么没有出现在我的机器人模拟器上?我错过了什么?见图片: enter image description here

我的代码:

[LuisIntent("Test")] 
    public async Task Test(IDialogContext context, LuisResult result) 
    { 

     Activity replyToConversation = (Activity)context.MakeMessage(); 
     //Activity replyToConversation = message.CreateReply("Should go to conversation"); 
     replyToConversation.Attachments = new List<Attachment>(); 
     AdaptiveCard card = new AdaptiveCard(); 

     // Add text to the card. 
     card.Body.Add(new TextBlock() 
     { 
      Text = "Adaptive Card design session", 
      Size = TextSize.Large, 
      Weight = TextWeight.Bolder 
     }); 

     // Add text to the card. 
     card.Body.Add(new TextBlock() 
     { 
      Text = "Conf Room 112/3377 (10)" 
     }); 

     // Add text to the card. 
     card.Body.Add(new TextBlock() 
     { 
      Text = "12:30 PM - 1:30 PM" 
     }); 

     // Add list of choices to the card. 
     card.Body.Add(new ChoiceSet() 
     { 
      Id = "snooze", 
      Style = ChoiceInputStyle.Compact, 
      Choices = new List<Choice>() 
      { 
       new Choice() { Title = "5 minutes", Value = "5", IsSelected = true }, 
       new Choice() { Title = "15 minutes", Value = "15" }, 
       new Choice() { Title = "30 minutes", Value = "30" } 
      } 
     }); 

     // Add buttons to the card. 
     card.Actions.Add(new HttpAction() 
     { 
      Url = "http://foo.com", 
      Title = "Snooze" 
     }); 

     card.Actions.Add(new HttpAction() 
     { 
      Url = "http://foo.com", 
      Title = "I'll be late" 
     }); 

     card.Actions.Add(new HttpAction() 
     { 
      Url = "http://foo.com", 
      Title = "Dismiss" 
     }); 

     // Create the attachment. 
     Attachment attachment = new Attachment() 
     { 
      ContentType = AdaptiveCard.ContentType, 
      Content = card 
     }; 

     replyToConversation.Attachments.Add(attachment); 

     // var reply = await connector.Conversations.SendToConversationAsync(replyToConversation); 
     await context.PostAsync(replyToConversation); 
     context.Done(true); 
    } 

更改HttpActionOpenUrlAction(或SubmitAction,根据您的需要),你会得到你的按钮:

demo

当你看文档,Actions的可能性是:

  • Action.OpenUrl
  • Action.Submit
  • Action.ShowCard

及其等效于C#对象是OpenUrlActionSubmitActionShowCardAction