如何在AdaptiveCard中使用AdaptiveColumnSet()的“ selectAction”属性? C#

时间:2019-04-18 14:23:31

标签: c# botframework adaptive-cards

private Attachment CardExample()
{
    AdaptiveCard card = new AdaptiveCard("1.0");
    card.Body.Add(new AdaptiveContainer()
    {
        Style = AdaptiveContainerStyle.Emphasis,

        Items = new List<AdaptiveElement>()
        {
            new AdaptiveColumnSet() 
            {
                Type = "ColumnSet",
                Height = AdaptiveHeight.Auto,
                SelectAction = new AdaptiveSubmitAction()
                {
                    Type="Action.Submit",
                    Id = "Submit",
                    Title="Submit",
                }
            },
        }
    });
    Attachment TestCard = new Attachment
    {
        ContentType = AdaptiveCard.ContentType,
        Content= JsonConvert.DeserializeObject(JsonConvert.SerializeObject(card)),
    };
    return TestCard; 
}

//它没有任何编译错误,但是在呈现自适应卡时,不会出现“提交”按钮
//只有一个空容器

2 个答案:

答案 0 :(得分:0)

ColumnSets可以包含一个on click动作,但是不需要支付任何按钮,实际上就是这么简单。如果单击ColumnSet,它将执行操作。

我在下面添加了一些图片等来说明其正常工作。有点笨拙,但您可以明白我的意思。

该示例是一个OpenUrl,它向google.com开放,一个Submit操作的作用相同,只是包含您要发送回机器人的数据并捕获并处理在OnTurnAsync中使用它(如果您使用的是v4框架)...

enter image description here

enter image description here

我知道这个答案不存在,但是...这就是答案。 :-)

答案 1 :(得分:0)

实施中的问题是您要在空容器上添加 selectAction 。列集需要列,每列都需要内容。对于您而言,列中没有实际项目,因此没有任何可单击的内容。

以下是应如何实现列集的示例:

{
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [

    {
      "type": "ColumnSet",
      "spacing": "medium",
      "columns": [
        {
          "type": "Column",
          "width": "auto",
          "items": [
            {
              "type": "Image",
              "url": "https://unsplash.it/80?image=1083",
              "size": "medium"
            }
          ]
        },
        {
          "type": "Column",
          "width": 4,
          "items": [
            {
              "type": "TextBlock",
              "text": "Silver Star Mountain"
            },
            {
              "type": "TextBlock",
              "text": "Maps",
              "isSubtle": true,
              "spacing": "none"
            }
          ]
        }
      ],
      "selectAction": {
        "type": "Action.OpenUrl",
        "title": "Silver Star Mountain",
        "url": "ms-cortana:silver-star-mountain"
      }
    }
  ]
}