Json 如何使用messageBack或imBack从ChoiceSet回显用户选择optionset?

Json 如何使用messageBack或imBack从ChoiceSet回显用户选择optionset?,json,botframework,microsoft-teams,adaptive-cards,Json,Botframework,Microsoft Teams,Adaptive Cards,我试图使用messageBack或imBack(以可能的为准)从给定的用户评级下拉列表中回显用户选择的选项。因为,我只能在messageBack值字段中添加静态文本作为值 "actions": [ { "type": "Action.Submit", "title": "OK", "data": { "mst

我试图使用messageBack或imBack(以可能的为准)从给定的用户评级下拉列表中回显用户选择的选项。因为,我只能在messageBack值字段中添加静态文本作为值

"actions": [
    {
      "type": "Action.Submit",
      "title": "OK",
      "data": {
        "msteams": {
          "type": "imBack",
          "value": "User selected option"
        }
      }
    }
  ]
有没有一种方法可以让我从choiceset和show获得值,并在MS团队中使用messageBack

您可以在此处参考完整的JSON:

{
  "type": "AdaptiveCard",
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.2",
  "body": [
    {
      "type": "TextBlock",
      "size": "Medium",
      "weight": "Bolder",
      "color": "Accent",
      "text": "Rate your experience!"
    },
    {

      "type": "TextBlock",
      "separator": true,
      "text": "Please rate your experience! Your feedback is very appreciated and will help improve your experience in the future. ",
      "wrap": true
    },
    {
      "type": "Input.ChoiceSet",
      "id": "CompactSelect",
      "label": "What color do you want? (compact)",
      "style": "compact",
      "isRequired": true,
      "errorMessage": "This is a required input",
      "placeholder": "Please choose",
      "choices": [
        {
          "title": "⭐⭐⭐⭐⭐",
          "value": "⭐⭐⭐⭐⭐"

        },
        {
          "title": "⭐⭐⭐⭐",
          "value": "⭐⭐⭐⭐"
        },
        {
          "title": "⭐⭐⭐",
          "value": "⭐⭐⭐"

        },
        {
          "title": "⭐⭐",
          "value": "⭐⭐"

        },
        {
          "title": "⭐",
          "value": "⭐"
        }
      ]
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "OK",
      "data": {
        "msteams": {
          "type": "imBack",
          "value": "User selected option"
        }
      }
    }
  ]

}

@user30-你能检查一下这个代码吗

var InputChoices = new List<AdaptiveChoice> {
          new AdaptiveChoice() { Title = "Red",
            Value = "Red" },
        new AdaptiveChoice() { Title = "Green",
            Value = "Green" },
  new AdaptiveChoice() { Title = "White",
            Value = "White" },
  new AdaptiveChoice() { Title = "Black",
            Value = "Black" }
   };
 return new AdaptiveCard()
      {
        Body = new List<AdaptiveElement>()
                {
 new AdaptiveColumnSet()
                    {
                        Columns=new List<AdaptiveColumn>()
                        {
                            new AdaptiveColumn()
                            {
                                Items=new List<AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text="Colors",
                                        Id="colorCodeId",
                                        Spacing=AdaptiveSpacing.None,
                                        Wrap=true
                                    }
                                }
                            },
                            new AdaptiveColumn()
                            {
                                Items=new List<AdaptiveElement>()
                                {
                                    new AdaptiveChoiceSetInput()
                                    {
                                        Id="colorCodeId",
                                        Spacing=AdaptiveSpacing.None,
                                        Choices=new List<AdaptiveChoice>(InputChoices),
                                        Style=AdaptiveChoiceInputStyle.Compact
                                    }
                                }
                            }
                        }
                    },
                },
        Actions = new List<AdaptiveAction>()
                {
                    new AdaptiveSubmitAction
                    {
                        Type = AdaptiveSubmitAction.TypeName,
                        Title = "Submit"
                 },
                },
      }
var InputChoices=新列表{
新的AdaptiveChoice(){Title=“Red”,
Value=“Red”},
新建AdaptiveChoice(){Title=“绿色”,
Value=“绿色”},
新的AdaptiveChoice(){Title=“White”,
Value=“White”},
新的AdaptiveChoice(){Title=“Black”,
Value=“Black”}
};
返回新的AdaptiveCard()
{
Body=新列表()
{
新的AdaptiveColumnSet()
{
列=新列表()
{
新的AdaptiveColumn()
{
Items=新列表()
{
新的AdaptiveTextBlock()
{
Text=“Colors”,
Id=“colorCodeId”,
间距=自适应间距。无,
Wrap=true
}
}
},
新的AdaptiveColumn()
{
Items=新列表()
{
新的AdaptiveChoiceSetInput()
{
Id=“colorCodeId”,
间距=自适应间距。无,
选项=新列表(输入选项),
Style=AdaptiveChoiceInputStyle.Compact
}
}
}
}
},
},
操作=新列表()
{
新的自适应submition
{
类型=AdaptiveSubmitAction.TypeName,
Title=“提交”
},
},
}

@user30-您能检查一下这个代码吗

var InputChoices = new List<AdaptiveChoice> {
          new AdaptiveChoice() { Title = "Red",
            Value = "Red" },
        new AdaptiveChoice() { Title = "Green",
            Value = "Green" },
  new AdaptiveChoice() { Title = "White",
            Value = "White" },
  new AdaptiveChoice() { Title = "Black",
            Value = "Black" }
   };
 return new AdaptiveCard()
      {
        Body = new List<AdaptiveElement>()
                {
 new AdaptiveColumnSet()
                    {
                        Columns=new List<AdaptiveColumn>()
                        {
                            new AdaptiveColumn()
                            {
                                Items=new List<AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text="Colors",
                                        Id="colorCodeId",
                                        Spacing=AdaptiveSpacing.None,
                                        Wrap=true
                                    }
                                }
                            },
                            new AdaptiveColumn()
                            {
                                Items=new List<AdaptiveElement>()
                                {
                                    new AdaptiveChoiceSetInput()
                                    {
                                        Id="colorCodeId",
                                        Spacing=AdaptiveSpacing.None,
                                        Choices=new List<AdaptiveChoice>(InputChoices),
                                        Style=AdaptiveChoiceInputStyle.Compact
                                    }
                                }
                            }
                        }
                    },
                },
        Actions = new List<AdaptiveAction>()
                {
                    new AdaptiveSubmitAction
                    {
                        Type = AdaptiveSubmitAction.TypeName,
                        Title = "Submit"
                 },
                },
      }
var InputChoices=新列表{
新的AdaptiveChoice(){Title=“Red”,
Value=“Red”},
新建AdaptiveChoice(){Title=“绿色”,
Value=“绿色”},
新的AdaptiveChoice(){Title=“White”,
Value=“White”},
新的AdaptiveChoice(){Title=“Black”,
Value=“Black”}
};
返回新的AdaptiveCard()
{
Body=新列表()
{
新的AdaptiveColumnSet()
{
列=新列表()
{
新的AdaptiveColumn()
{
Items=新列表()
{
新的AdaptiveTextBlock()
{
Text=“Colors”,
Id=“colorCodeId”,
间距=自适应间距。无,
Wrap=true
}
}
},
新的AdaptiveColumn()
{
Items=新列表()
{
新的AdaptiveChoiceSetInput()
{
Id=“colorCodeId”,
间距=自适应间距。无,
选项=新列表(输入选项),
Style=AdaptiveChoiceInputStyle.Compact
}
}
}
}
},
},
操作=新列表()
{
新的自适应submition
{
类型=AdaptiveSubmitAction.TypeName,
Title=“提交”
},
},
}

我测试了您的自适应卡json,您可以尝试设置输入选项的Id,并检查bot上下文的值是否定义为您选择的值,尝试使用submit Action回显值。您可以共享相同的代码吗?我是这个自适应卡和bot框架的新手,因此有时很难理解口头解决方案。我测试了您的自适应卡json,您可以尝试设置输入选项的Id,检查bot上下文的值是否定义为您选择的值,尝试使用submit Action回显值您可以共享相同的代码吗?我不熟悉这种自适应卡和bot框架,因此有时很难理解口头解决方案。