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

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

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

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

  1. Rick Strahl's Razor Hosting Template Engine - http://www.west-wind.com/weblog/posts/864461.aspx
  2. Razor Engine на GitHub - https://github.com/Antaris/RazorEngine

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

6 ответов

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

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

RazorEngine

Шаблон Razor вне проекта MVC

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

Фил Хаак написал о том, как сделать это, используя сгенерированный класс.

  • Вы создаете файл.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());
    

Есть хороший пост, как использовать RazorEngine: Как создать локализуемый текстовый шаблонизатор с помощью RazorEngine

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

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

RazorMachine (на GitHub)

Качество:

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