【问题标题】:Syntax for displaying adaptive card on Razor page在 Razor 页面上显示自适应卡片的语法
【发布时间】:2020-06-30 20:54:56
【问题描述】:

Razor/Adaptive Card 新手在这里。我可以使用 Adaptive Cards sdk 在 C# 中创建自适应卡。但是文档没有说明如何在剃须刀页面中显示卡片。

我的代码: C# 页面模型

 public PageResult OnGet()
        {
            AdaptiveCardRenderer renderer = new AdaptiveCardRenderer();

            AdaptiveCard card = new AdaptiveCard(renderer.SupportedSchemaVersion);
            card.Body.Add(new AdaptiveTextBlock { Text = "Hello World" });
            AdaptiveTextInput adaptiveTextInput = new AdaptiveTextInput {IsMultiline = true};
            card.Body.Add(adaptiveTextInput);
            AdaptiveActionSet adaptiveActionSet = new AdaptiveActionSet();
            adaptiveActionSet.Actions.Add(new AdaptiveOpenUrlAction()
            {
                Id = "buttonId",
                Title = "Button"
            });
            card.Body.Add(adaptiveActionSet);
            RenderedAdaptiveCard renderedCard = renderer.RenderCard(card);
            ViewData.Add("cardJson",renderedCard.Html);

            return Page();
        }

剃刀页面

@page
@model ScoutAdaptiveCardRenderer.Pages.Card.CardRenderModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
    ViewData["Title"] = "CardRender";
}


<!DOCTYPE html>

<html>
<head>
    <title></title>
</head>
<body>
@ViewData["cardJson"]
</body>
</html>

剃须刀页面仅在字符串中显示格式化为 html 的卡片数据。我在文档中没有看到任何关于如何在剃刀页面上实际呈现卡片的内容。有人可以帮助使用正确的语法吗?

【问题讨论】:

    标签: c# asp.net-mvc razor adaptive-cards


    【解决方案1】:

    这行得通:

        string cardJson = "{\r\n    \"type\": \"AdaptiveCard\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"Image\",\r\n            \"altText\": \"\",\r\n            \"url\": \"https://placekitten.com/408/287\",\r\n            \"id\": \"idKittenPicture\"\r\n        },\r\n        {\r\n            \"type\": \"TextBlock\",\r\n            \"text\": \"Nice kitty\",\r\n            \"id\": \"idKittyText\"\r\n        },\r\n        {\r\n            \"type\": \"Input.Text\",\r\n            \"placeholder\": \"type something here\",\r\n            \"id\": \"idInput\",\r\n            \"isMultiline\": true\r\n        },\r\n        {\r\n            \"type\": \"ActionSet\",\r\n            \"actions\": [\r\n                {\r\n                    \"type\": \"Action.OpenUrl\",\r\n                    \"title\": \"Rosie\'s Page Button\",\r\n                    \"id\": \"idRosiePage\",\r\n                    \"url\": \"https://jwt.io/\"\r\n                }\r\n            ]\r\n        }\r\n    ],\r\n    \"$schema\": \"http://adaptivecards.io/schemas/adaptive-card.json\",\r\n    \"version\": \"1.0\"\r\n}";
        AdaptiveCardRenderer renderer = new AdaptiveCardRenderer();
    
        AdaptiveCard card = AdaptiveCard.FromJson(cardJson).Card;
    
        var adaptiveSubmitAction = new AdaptiveSubmitAction();
        adaptiveSubmitAction.Title = "Data";
        adaptiveSubmitAction.Data = "{\"id\":123456789,\"name\":\"Abner Wallace\"}";
        card.Actions.Add(adaptiveSubmitAction);
        RenderedAdaptiveCard renderedCard = renderer.RenderCard(card);
    
        HtmlString htmlString = new HtmlString(renderedCard.Html.ToString());
    }
    @htmlString
    
    

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2021-06-26
      • 1970-01-01
      • 2017-12-29
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多