Здесь есть две проблемы:
- Да, вы можете запустить 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!
}