Синтаксис для отображения адаптивной карты на странице Razor - PullRequest
0 голосов
/ 19 марта 2020

Бритва / Адаптивная карта newb ie здесь. Я могу создать адаптивную карту в C#, используя SDK Adaptive Cards. Но документация не показывает, как отобразить карту на странице бритвы.

Мой код: 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 в виде строки. Я не вижу ничего в документации о том, как на самом деле сделать карту на странице бритвы. Может кто-нибудь помочь с правильным синтаксисом?

1 Ответ

0 голосов
/ 20 марта 2020

Это сработало:

    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

...