自适应卡片会自动重新排序有序列表,而文本的顺序保持不变

编程语言 2026-07-10

场景

我在一个自适应卡片中有一个描述字段,里面包含多项要点并且手动编号(例如1、2、3…)。内容通过一个可操作消息发送。

然而,如果编号被故意或无意地打乱(例如1、3、2),渲染后的自适应卡片会自动重新排序仅数字部分(1、2、3),而实际文本内容仍保持原始的(错误)顺序。

这会导致编号和相应文本之间不匹配。

示例

输入文本:

1. First point  
3. Third point  
2. Second point

渲染输出:

1. First point  
2. Third point  
3. Second point

如你所见:

  • 数字会自动重新排序
  • 文本内容不会相应地重新排序

附加信息

  • 此问题在以下环境中可重现:
  • Microsoft Teams(可操作消息 / 自适应卡片)
  • 自适应卡片设计器
  • 编号是纯文本的一部分(不是结构化列表组件)

预期行为

编号应完全按输入文本给出的顺序保持。

实际行为

渲染器在保持文本不变的情况下,自动对编号进行规范化/重新排序。

自适应卡片JSON(简化版)

{
  "type": "AdaptiveCard",
  "body": [
    {
      "type": "TextBlock",
      "text": "1. First point\n3. Third point\n2. Second point",
      "wrap": true
    }
  ],
  "version": "1.6"
}

解决方案

自适应卡片使用的是Markdown语言的子集,你看到的其实是有序列表的标准Markdown规则。例如,请参阅 https://www.markdownguide.org/basic-syntax/#ordered-lists。它确实指出“数字不必按数字顺序排列”。请参阅链接部分表格中的第三个示例——它正好展示了与你的行为完全一致的情况。

根据你创建自适应卡片的方式,或许可以在渲染前对项进行排序。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章