下拉自适应智能卡-BOT框架

人气:1,007 发布:2022-10-16 标签: .net c# drop-down-menu botframework adaptive-cards

问题描述

要以城市为单位显示假日列表,我正在创建一张适配卡。在适配卡上会有一个城市列表的下拉列表,根据选择,我需要显示选定城市的度假列表。 我找不到如何从下拉列表中获取所选值。我尝试了类似下面的方法,但它只给出了我在渲染卡片时在下拉列表中选择的第一个值-

var card = new AdaptiveCard();

try
{
    card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0))
    {
        Body =
        {
            new AdaptiveTextBlock("My Holiday List - " + userCity),
            new AdaptiveTextBlock("Please select city:"),

            new AdaptiveChoiceSetInput
            {
                Choices = list,
                Id = "CountryOrganizationCode",
                Style = AdaptiveChoiceInputStyle.Compact,
                Value = "Delhi",
                // IsMultiSelect = false,
            },
        },
    };

    card.Actions = new List<AdaptiveAction>
    {
        new AdaptiveShowCardAction
        {
            Title = "View Holiday List ",
            Type =  "Action.ShowCard",
            Card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0))
            {
                Body =
                {
                    new AdaptiveTextBlock()
                    {
                        Text = holidaylist.Where(i => i.Key == ((AdaptiveCards.AdaptiveChoiceSetInput)card.Body[2]).Value).FirstOrDefault().Value.ToString(),
                        Wrap = true,
                    },
                },
            },
        },
    };
}

推荐答案

我对other question的回答:

如果您使用Web聊天,则只能扩展Adaptive Card功能,因此您将无法响应此下拉菜单中的事件,并且无法在用户填写卡片时对其进行修改。您需要让用户选择一个城市,然后单击Submit按钮。虽然团队确实允许消息更新,因此您可以响应提交操作更新卡片,但只发送带有假期列表的全新卡片可能更好、更容易。

这意味着您只能在网络聊天中做您想做的事情,即使那样也很困难。由于您需要针对团队的变通方法,因此您不妨也将该变通方法用于网络聊天。

您将无法使适配卡在Skype中工作,因为它不是supported platforms for Adaptive Cards之一。Skype机器人通常也不受欢迎,所以我的建议是放弃Skype作为一个频道,只使用另外两个频道。

436