Ответ 1
Какое текущее лучшее решение для генерации HTML из ASP.NET Шаблоны бритвы в консольном приложении?
RazorEngine
. Полная остановка.
Я хочу сделать это:
string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });
И похоже, что http://razorengine.codeplex.com совершенен, за исключением года.
EDIT: Оказывается, что RazorEngine переместился в GitHub и получил несколько месяцев назад: https://github.com/Antaris/RazorEngine
Я заметил, что Service Stack имеет собственный хостинг Razor, но в то время как там длинная страница http://razor.servicestack.net нет "привет мир, который вы можете полностью сделайте это с консоли."
Какое текущее лучшее решение для генерации HTML из шаблонов ASP.NET Razor в консольном приложении?
Какое текущее лучшее решение для генерации HTML из ASP.NET Шаблоны бритвы в консольном приложении?
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();
Здесь находится автономный unit test этого примера.
Преимущества использования механизма рендеринга представления ServiceStack Razor включают доступ ко многим из MVC HtmlHelpers, которые были перенесены в ServiceStack. Вы также можете легко разместить веб-сайт бритвы из самообслуживаемого ServiceStack HttpListener, как показано в razor-console.servicestack.net, исходный код которого доступен в Self-Hosted Console Application или Служба Windows.
Нэнси имеет возможность самостоятельного хоста и возможность подключать Razor в качестве механизма просмотра.
https://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-wcf
Я бы не назвал это "самым лучшим" решением. Однако я нашел это довольно интересным, и это позволит вам выполнить то, что вы пытаетесь сделать. Это просто не очень аккуратно завернуто. http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of-aspnet-revised-for-mvc3-rc.html/