Использование Razor без MVC

Возможный дубликат:
Можно ли использовать Razor View Engine за пределами asp.net?

Мне нужно объединить шаблоны с данными для создания уникальных строк во время выполнения. Было предложено взглянуть на движок шаблонного представления Razor, который поставляется в ASP.NET MVC 3. Выглядит великолепно, но мне нужно использовать его вне создания MVC-представления.

Я знаю, что могу использовать ядро Razor напрямую, но я также обнаружил несколько проектов, которые упрощают использование Razor напрямую. Подобно:

  1. Шаблон размещения Rick Strahl Razor Engine- http://www.west-wind.com/weblog/posts/864461.aspx
  2. Razor Engine на GitHub - https://github.com/Antaris/RazorEngine

Есть ли у кого-нибудь руководство по использованию Razor вне MVC в качестве автономного движка шаблонов? Есть опыт работы с этими обёртками? Есть ли другие реализации хостинга Razor, на которые мне стоит обратить внимание?

Ответ 2

Вы можете взглянуть на следующий пост в блоге, который иллюстрирует, как вы можете использовать механизм представления Razor для рендеринга шаблона в строку.

Ответ 3

Если вы хотите создать реальный контент из шаблона бритвы, вы можете использовать RazorEngine.

Ответ 4

Посмотрите на библиотеку RazorTemplates. Он более легкий, чем библиотека RazorEngine, он потокобезопасен и имеет очень приятный минимальный интерфейс.

Ответ 5

Phil Haack опубликовал об этом пути, используя сгенерированный класс.

  • Вы создаете файл .cshtml и затем используете расширение времени компиляции для файла для создания класса. Тогда вы можете просто сделать это:

    var template = new RazorTemplate {
        Model = new[] { 
            new {Name = "Scott", Id = 1},
            new {Name = "Steve", Id = 2},
            new {Name = "Phil", Id = 3},
            new {Name = "David", Id = 4}
        }
    };
    Console.WriteLine(template.TransformText());
    

Ответ 7

Найдена действительно хорошая библиотека от Яапа Ламфера:

Механизм шаблонов Razor 2.0, поддерживающий макеты (в CodeProject)

RazorMachine (на GitHub)

Качества:

  • поддержка _ViewStart
  • Поддержка Макет
  • extensible (поддерживает что-то вроде MVC ViewEngines)
  • содержит образцы
  • много модульных тестов
  • он хорошо документирован (см. ссылку CodeProject)