温馨提示:本文翻译自stackoverflow.com,查看原文请点击:botframework - Cancel button on microsoft adaptive cards for teams
adaptive-cards botframework bots microsoft-teams

botframework - 适用于团队的Microsoft自适应卡上的“取消”按钮

发布于 2020-04-14 09:49:33

我正在为使用nodejs的团队使用ms自适应卡。我可以看到动作具有类型的按钮Action.Submit以传递表单数据。但是,我想了解如何处理取消情况。

有没有一种方法可以简单地单击“取消”按钮时关闭表单,或者我必须让它的行为像“保存”按钮,并且在按下“取消”按钮时不从服务器端返回任何内容。

我的卡如下

{
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "TextBlock",
            "size": "Medium",
            "weight": "Bolder",
            "text": "{title}"
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "Image",
                            "style": "Person",
                            "url": "{creator.profileImage}",
                            "size": "Small"
                        }
                    ],
                    "width": "auto"
                },
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "TextBlock",
                            "weight": "Bolder",
                            "text": "{creator.name}",
                            "wrap": true
                        },
                        {
                            "type": "TextBlock",
                            "spacing": "None",
                            "text": "Created {{DATE({createdUtc},SHORT)}}",
                            "isSubtle": true,
                            "wrap": true
                        }
                    ],
                    "width": "stretch"
                }
            ]
        }
    ],
    "actions": [
        {
            "type": "Action.ShowCard",
            "title": "Set due date",
            "card": {
                "type": "AdaptiveCard",
                "body": [

                    {
                        "type": "Input.Text",
                        "id": "comment",
                        "placeholder": "Add a comment",
                        "isMultiline": true
                    }
                ],
                "actions": [
                    {
                        "type": "Action.Submit",
                        "title": "OK"
                    },
                     {
                        "type": "Action.Submit",
                        "title": "Cancel"
                    }
                ],
                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
            }
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}

查看更多

提问者
Moblize IT
被浏览
60
Md Farid Uddin Kiron 2020-02-03 16:28

没有确切定义的方法来处理Cancel功能。

您必须另外管理代码,是的,您是正确的,就像Save Action您还需要为Cancel

例如,我所做的就是当用户选择sorry, not now(如Cancel)时,我接受了该回复,并在需要时Switch-Case回复了。

//Check Each User Input
 switch (checkUserInput.ToLower())
                        {
       case "sorry, not now":
                                await turnContext.SendActivityAsync(MessageFactory.Text("Okay, Can I help with anything else?"), cancellationToken);
                                //Send Another Yes/No Card
                                var yesNoFlow = _customFlowRepository.YesNoFlow();
                                await turnContext.SendActivityAsync(yesNoFlow).ConfigureAwait(false);
                                break;
      default: //When nothing found in user intent
                                await turnContext.SendActivityAsync(MessageFactory.Text("What are you looking for?"), cancellationToken);
                                break;

                        }

您可以看一下下面的屏幕截图:

在此处输入图片说明

希望这可以帮助您找出问题所在。让我知道您是否还有其他顾虑。