You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Composer与.NET SDK的Adaptive Card多选下拉框技术咨询

实现Adaptive Card多选用户下拉的方案

方案1:使用ChoiceSet控件(推荐)

Adaptive Card原生支持通过ChoiceSet控件实现多选功能,结合style: "compact"配置可模拟下拉框的交互体验,完全满足展示用户列表并允许多选的需求。

示例Card JSON

{
  "type": "AdaptiveCard",
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.4",
  "body": [
    {
      "type": "ChoiceSet",
      "id": "selectedUsers",
      "label": "选择用户",
      "style": "compact",
      "multiSelect": true,
      "choices": [
        {
          "title": "张三",
          "value": "user_001"
        },
        {
          "title": "李四",
          "value": "user_002"
        },
        {
          "title": "王五",
          "value": "user_003"
        }
      ]
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "确认选择"
    }
  ]
}

.NET SDK中动态绑定用户列表

在Composer的自定义代码或.NET业务逻辑中,可从数据源(如AD、数据库)拉取用户列表,动态构建ChoiceSet的选项集合:

// 假设已从数据源获取用户数据
var userList = new List<AdaptiveChoice>();
foreach (var user in yourUserDataSource)
{
    userList.Add(new AdaptiveChoice
    {
        Title = user.DisplayName,
        Value = user.Id.ToString()
    });
}

// 构建多选ChoiceSet控件
var choiceSet = new AdaptiveChoiceSet
{
    Id = "selectedUsers",
    Label = "选择用户",
    Style = AdaptiveChoiceSetStyle.Compact,
    MultiSelect = true,
    Choices = userList
};

// 组装完整Adaptive Card
var card = new AdaptiveCard("http://adaptivecards.io/schemas/adaptive-card.json")
{
    Body = new List<AdaptiveElement> { choiceSet },
    Actions = new List<AdaptiveAction> { new AdaptiveSubmitAction { Title = "确认选择" } }
};

获取用户选中结果

用户提交卡片后,在机器人的处理逻辑中,可通过TurnContext提取选中的用户ID:

var activityValue = JObject.Parse(turnContext.Activity.Value.ToString());
var selectedUserIds = activityValue["selectedUsers"].ToObject<List<string>>();

方案2:自定义扩展控件(复杂场景)

如果需要完全贴合原生下拉多选的视觉样式,可通过Adaptive Card的自定义渲染扩展实现,但该方式需要前端配合修改渲染逻辑,对于基于Composer的机器人来说开发成本较高,仅推荐用于特殊定制场景。


内容的提问来源于stack exchange,提问作者Obla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:25:29