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