bot框架v3中的自适应卡包含动态下拉列表

问题描述 投票:-1回答:1

我正在使用BOT Framework v 3我有一个自适应卡,它接收来自用户的输入,我希望Dropdown中的值是动态的。有自适应卡设计代码,你可以看到我已经手动输入了选择相反,它希望它是来自数据库的动态

var card = new AdaptiveCard()
{
    Body = new List<CardElement>()
    {
        new TextBlock()
        {
            Color = TextColor.Attention,
            Weight = TextWeight.Bolder,
            Size = TextSize.Medium,
            Text = "Select a title",
        },
        new ChoiceSet()
        {
            Id = "title",
            Style = ChoiceInputStyle.Compact,
            IsRequired = false,
            IsMultiSelect = false,
            Value = "1",
            Choices = new List<Choice>()
            {
                new Choice()
                {
                    Title = "Swiss cargo",
                    Value = "Swiss cargo",
                },
                new Choice()
                {
                    Title = "ticket booking",
                    Value = "ticket booking",
                },
            },
        },
    },
};
c# botframework dropdown chatbot adaptive-cards
1个回答
0
投票

假设您可以将数据放入字符串列表中,可以使用Linq轻松构建自适应卡。如果要继续使用相同的自适应卡库,它将如下所示:

var data = new List<string> { "Swiss cargo", "ticket booking" };

var card = new AdaptiveCard()
{
    Body = new List<CardElement>()
    {
        new TextBlock()
        {
            Color = TextColor.Attention,
            Weight = TextWeight.Bolder,
            Size = TextSize.Medium,
            Text = "Select a title",
        },
        new ChoiceSet()
        {
            Id = "title",
            Style = ChoiceInputStyle.Compact,
            IsRequired = false,
            IsMultiSelect = false,
            Value = "1",
            Choices = data.Select(item => new Choice { Title = item, Value = item }).ToList(),
        },
    },
};
© www.soinside.com 2019 - 2024. All rights reserved.