如何使用;选择操作“;AdaptiveCard中AdaptiveColumnSet()的属性?C# private Attachment CardExample() { AdaptiveCard卡=新的AdaptiveCard(“1.0”); card.Body.Add(新的AdaptiveContainer() { 样式=自适应内容样式。强调, Items=新列表() { 新的AdaptiveColumnSet() { Type=“ColumnSet”, 高度=自适应高度。自动, SelectAction=new AdaptiveSubmitAction() { Type=“Action.Submit”, Id=“提交”, Title=“提交”, } }, } }); 附件测试卡=新附件 { ContentType=AdaptiveCard.ContentType, Content=JsonConvert.DeserializeObject(JsonConvert.SerializeObject(卡片)), }; 返回测试卡; }

如何使用;选择操作“;AdaptiveCard中AdaptiveColumnSet()的属性?C# private Attachment CardExample() { AdaptiveCard卡=新的AdaptiveCard(“1.0”); card.Body.Add(新的AdaptiveContainer() { 样式=自适应内容样式。强调, Items=新列表() { 新的AdaptiveColumnSet() { Type=“ColumnSet”, 高度=自适应高度。自动, SelectAction=new AdaptiveSubmitAction() { Type=“Action.Submit”, Id=“提交”, Title=“提交”, } }, } }); 附件测试卡=新附件 { ContentType=AdaptiveCard.ContentType, Content=JsonConvert.DeserializeObject(JsonConvert.SerializeObject(卡片)), }; 返回测试卡; },c#,botframework,adaptive-cards,C#,Botframework,Adaptive Cards,//它没有任何编译错误,但在呈现自适应卡时,提交按钮不会出现 //只有空容器列集可以包含单击操作,但没有显示按钮,就这么简单。如果单击列集,它将执行该操作 我在下面附上了一些图片等来说明它的工作原理。这有点笨重,但你可以理解我的意思 这个例子是一个OpenUrl,它打开到google.com,一个Submit操作也是一样的,只需要包含你想要发送回bot的数据,并捕获它,然后在OnTurnAsync中处理它(如果你使用的是v4框架) 我知道这个答案是缺乏的,但。。。这就是答案。:-) 实现中的

//它没有任何编译错误,但在呈现自适应卡时,提交按钮不会出现

//只有空容器

列集可以包含单击操作,但没有显示按钮,就这么简单。如果单击
列集
,它将执行该操作

我在下面附上了一些图片等来说明它的工作原理。这有点笨重,但你可以理解我的意思

这个例子是一个
OpenUrl
,它打开到google.com,一个
Submit
操作也是一样的,只需要包含你想要发送回bot的数据,并捕获它,然后在
OnTurnAsync
中处理它(如果你使用的是v4框架)


我知道这个答案是缺乏的,但。。。这就是答案。:-)

实现中的问题是在空容器上添加selectAction。列集需要列,而每列都需要内容。在您的情况下,列中没有实际的项目,因此没有可单击的内容

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

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; 
}

嗨,我不确定SelectAction属性的用法。我看到一段代码,其中有人以这种方式使用它,但我没有得到结果。您能在这里提供JSON输出吗?您是否尝试将其粘贴到adaptive card designer并确认预期结果@MattHidinger-感谢您回复Matt。我正在尝试用C#设计这张卡,很难在其中找到语法。上面选择columnset中的操作的代码中是否缺少一些内容,因为它没有显示任何语法错误,但也没有给出结果。
{
  "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"
      }
    }
  ]
}