Какое в настоящее время лучшее решение для генерации HTML из шаблонов ASP.NET Razor в консольном приложении?

Я хочу сделать это:

string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });

И кажется, что http://razorengine.codeplex.com/ идеально подходит, за исключением того, что ему год.

РЕДАКТИРОВАТЬ: Оказывается, что RazorEngine перешел на GitHub и имел комит несколько месяцев назад: https://github.com/Antaris/RazorEngine

Я заметил, что в Service Stack есть собственный Razor-хостинг, но хотя здесь есть длинная страница http://razor.servicestack.net/, нет "привет, вы можете сделать это с консоли".

Какое в настоящее время лучшее решение для генерации HTML из шаблонов ASP.NET Razor в консольном приложении?

4 ответа

Решение

Какое в настоящее время лучшее решение для генерации HTML из шаблонов ASP.NET Razor в консольном приложении?

RazorEngine, Полная остановка.

ServiceStack - это еще одна опция для рендеринга страниц вида Razor. Хотя он оптимизирован для интеграции в веб- хостинг ASP.NET или HttpListener (и предоставляет API-интерфейсы для автоматического обнаружения и регистрации страниц просмотра в каталоге, повторной компиляции измененных страниц на лету и т. Д.), Он также поддерживает статическую генерацию страниц просмотра.:

var razor = new RazorFormat {
    VirtualPathProvider = new InMemoryVirtualPathProvider(new BasicAppHost()),
    EnableLiveReload = false, //don't scan for file system for changes
}.Init();

var page = razor.CreatePage("Hello @Model.Name! Welcome to Razor!");
var html = razor.RenderToHtml(page, new { Name = "World" });
html.Print();

Вот автономный модульный тест этого примера.

Преимущества использования движка рендеринга представлений ServiceStack Razor включают в себя доступ ко многим HtmlHelpers MVC, которые были портированы в ServiceStack. Вы также можете легко разместить бритвенный веб-сайт с помощью самостоятельно размещенного ServiceStack HttpListener, как показано на http://razor-console.servicestack.net/, исходный код которого доступен в автономном консольном приложении или службе Windows.

У Нэнси есть опция собственного хостинга и возможность подключить Razor в качестве движка просмотра.

https://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-wcf

https://github.com/NancyFx/Nancy/wiki/Razor-View-Engine

Я бы не назвал это "лучшим на сегодняшний день" решением. Тем не менее, я нашел это довольно интересным, и это позволит вам выполнить то, что вы пытаетесь сделать. Это просто не очень аккуратно завернуто. http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of-aspnet-revised-for-mvc3-rc.html/

Другие вопросы по тегам