C# Bot framework 4向选项提示选择添加其他元数据

C# Bot framework 4向选项提示选择添加其他元数据,c#,.net-core,botframework,C#,.net Core,Botframework,我正在用BotFramework 4开发一个机器人,在这里我会提示用户选择几个动态美元金额,例如: 请选择金额1)对账单总余额$29.99 2)未付余额总额$35.00 现在我用整个文本值返回答案,我需要解析出值。 我的问题是,有没有一种方法可以向choice对象添加一些底层元数据,例如,我会添加美元金额,因此当用户选择一个选项时,我会返回该选项的美元金额也许使用此处将是一种解决方法,请尝试以下代码: protected override async Task OnMessageActivity

我正在用BotFramework 4开发一个机器人,在这里我会提示用户选择几个动态美元金额,例如:

请选择金额1)对账单总余额$29.99 2)未付余额总额$35.00

现在我用整个文本值返回答案,我需要解析出值。 我的问题是,有没有一种方法可以向choice对象添加一些底层元数据,例如,我会添加美元金额,因此当用户选择一个选项时,我会返回该选项的美元金额

也许使用此处将是一种解决方法,请尝试以下代码:

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{

    if (turnContext.Activity.Text.Equals("give me a choice"))
    {
        var adaptiveJsonString = "{\"$schema\":\"https://adaptivecards.io/schemas/adaptive-card.json\",\"type\":\"AdaptiveCard\",\"version\":\"1.0\",\"body\":[{\"type\":\"TextBlock\",\"text\":\"choose an amount\",\"size\":\"large\"}],\"actions\":[{\"type\":\"Action.Submit\",\"title\":\"total statement balance $29.99\",\"data\":\"29.99\"},{\"type\":\"Action.Submit\",\"title\":\"total outstanding balance $35.00\",\"data\":\"35.00\"}]}";

        var adaptiveCardAttachment = new Attachment()
        {
            ContentType = "application/vnd.microsoft.card.adaptive",
            Content = JsonConvert.DeserializeObject(adaptiveJsonString),
        };
        await turnContext.SendActivityAsync(MessageFactory.Attachment(adaptiveCardAttachment), cancellationToken);
    }
    else {
        await turnContext.SendActivityAsync(MessageFactory.Text("You inputed : " + turnContext.Activity.Text), cancellationToken);
    }

}
messageActivityAsync上的受保护覆盖异步任务(iTurContext turnContext,CancellationToken CancellationToken)
{
if(turnContext.Activity.Text.Equals(“给我一个选择”))
{
var adaptiveJsonString=“{\“$schema\”:\”https://adaptivecards.io/schemas/adaptive-card.json\“,”类型“:”自适应卡片“,”版本“:”1.0“,”正文“:[{”类型“:”文本块“,”文本“:”选择金额“,”大小“:”大“,”操作“:[{”类型“:”操作.提交“,”标题“:”总报表余额$29.99“,”数据“:”29.99“,”类型“:”行动。提交“,”标题“:”未清余额总额$35.00“,”数据“:”35.00\”}”;
var adaptiveCardAttachment=新附件()
{
ContentType=“application/vnd.microsoft.card.adaptive”,
Content=JsonConvert.DeserializeObject(adaptiveJsonString),
};
等待turnContext.SendActivityAsync(MessageFactory.Attachment(adaptiveCardAttachment),cancellationToken);
}
否则{
等待turnContext.SendActivityAsync(MessageFactory.Text(“您输入的:”+turnContext.Activity.Text),cancellationToken);
}
}
结果:

如果您想了解更多有关自适应卡的信息,将非常有帮助


希望能有所帮助。

谢谢大家的努力。但这只适用于受支持的频道