Каково текущее лучшее решение для генерации HTML из ASP.NET шаблоны Razor в консольном приложении?
Я хочу сделать это:
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
Я заметил, что стек службы имеет некоторый Razor self-hosting, но пока здесь есть длинная страница http://razor.servicestack.net там нет "привет мир вы можете полностью сделать это с консоли."
каково текущее лучшее решение для генерации HTML из ASP.NET шаблоны Razor в консольном приложении?
4 ответов:
каково текущее лучшее решение для генерации HTML из ASP.NET Шаблоны Razor в консольном приложении?
RazorEngine. Точка.
ServiceStack-это еще один вариант рендеринга страниц Razor view. Хотя он оптимизирован для интеграции в 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();вот автономный модульный тест этого примера.
преимущества использования Механизм рендеринга Razor view от ServiceStack включает доступ ко многим HtmlHelpers MVC, которые были перенесены в ServiceStack. Вы также можете легко разместить веб-сайт razor из самостоятельного ServiceStack HttpListener, как показано в razor-console.servicestack.net, исходный код которого доступен в Автономное Консольное Приложение или Служба Windows.
Нэнси имеет вариант собственн-хозяина и способность заткнуть бритву как двигатель взгляда.
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/
Comments