Здесь есть две проблемы:
- Да, вы можете запускать Razor View Engine вне контекста домена приложения ASP.NET, как описано в блоге Эндрю: http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of -aspnet-revised-for-mvc3-rc.html
- Однако Razor по-прежнему в первую очередь ориентирован на создание разметки, подобной XML (например, HTML), в том смысле, что синтаксический анализатор Razor использует присутствие
<tags>
для определения перехода между кодом и разметкой. Вы, вероятно, можете использовать его для генерации любого текста, но вы можете столкнуться с проблемами, если ваш вывод не соответствует предположениям Razor о ваших намерениях.
Так, например, пока это действительный код Razor (из-за <div>
тега):
@if(printHello) {
<div>Hello!</div>
}
Следующий фрагмент недействителен (потому что Hello! По-прежнему обрабатывается как код):
@if(printHello) {
Hello!
}
Однако есть специальный <text>
тег, который можно использовать для принудительного перехода для многострочных блоков ( <text>
тег не будет отображаться):
@if(printHello) {
<text>Hello!
Another line</text>
}
Существует также более короткий синтаксис для принудительного перехода одной строки с использованием @:
:
@if(printHello) {
@:Hello!
}
<text>
теги или использовать@:
время от времени. Как только появится поддержка редактора VS для синтаксиса Razor, будет довольно легко определить, когда происходят переходы.Проверьте RazorEngine , это небольшой фреймворк, созданный поверх Razor, который позволяет вам это делать.
источник
Взгляните на библиотеку RazorTemplates . Она более легкая, чем библиотека RazorEngine, ориентирована на многопоточность и имеет очень приятный минималистичный интерфейс.
Компиляция и рендеринг шаблона - это просто две строчки кода:
источник
И RazorEngine, и RazorTemplates уже упоминались здесь, но посмотрите RazorMachine . Вы можете просто указать свое приложение, отличное от MVC, в папку ~ / Views (другого) существующего приложения MVC, выполнить с отправкой правильной модели и получить визуализированный вывод в 2 строках кода:
источник
Сгенерировать код или текст: вы имеете в виду шаблоны T4: http://msdn.microsoft.com/en-us/library/bb126445.aspx или инструменты Codemith?
источник