Ищете простейший вариант рендеринга Razor cshtml страниц в консольном приложении без какого-либо веб-сервера - PullRequest
0 голосов
/ 03 ноября 2018

Я использую Razor Engine для шаблонизирующих приложений в стиле слияния.

С появлением архитектуры ASP.NET Core я надеюсь, что смогу рендерить страницы Razor cshtml в строку без необходимости какого-либо дополнительного библиотечного пакета.

Могу ли я это сделать? Если да, ссылка на пример кода будет очень полезна.

Идея пришла из Linux, где мы можем рендерить файлы PHP в командной строке report.php, и вывод идет в stdout. Нет необходимости в веб-сервере. Я надеюсь, что через столько лет мы сможем сделать то же самое с cshtml.

1 Ответ

0 голосов
/ 03 ноября 2018

Вам не нужен веб-сервер. Доступно много шаблонных движков. Я лично использую RazorLight, который хорошо работает с ядром asp.net: https://github.com/toddams/RazorLight

Для вывода текста в консольном приложении вы просто используете

 // c#
 Console.Write("my text");

 // php
 echo "my text";

Чтобы вывести текст на основе шаблона (используя RazorLight):

var engine = new RazorLightEngineBuilder()
              .UseMemoryCachingProvider()
              .Build();

string template = "Hello, @Model.Name. Welcome to RazorLight repository";
ViewModel model = new ViewModel() { Name = "John Doe" };

string result = await engine.CompileRenderAsync("templateKey", template, model);

Console.Write(result);

(отредактировано на основе комментария)

...