Использование 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 на GitHub – https://github.com/Antaris/RazorEngine

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

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

RazorEngine

Шаблон Razor за пределами проекта MVC

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

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

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

    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()); 

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

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

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

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

RazorMachine (на GitHub)

Качество:

  • поддержка _ViewStart
  • макет поддержки
  • extensible (поддерживает что-то вроде MVC ViewEngines)
  • содержит образцы
  • много модульных тестов
  • он хорошо документирован (см. ссылку CodeProject)
  • MVC3 Razor DropDownListFor Enums
  • Запись / вывод HTML-строк без сохранения
  • Могу ли я служить .html-файлами с помощью Razor, как если бы они были .cshtml-файлами без изменения расширения всех моих страниц?
  • Преобразование ASP.NET MVC Razor @helper в метод вспомогательного classа
  • Различия между Html.TextboxFor и Html.EditorFor в MVC и Razor
  • Как указать различные макеты в файле ViewStart бритвы ASP.NET MVC 3?
  • Синтаксис Razor обеспечивает непревзойденное преимущество в разметке пользовательского интерфейса?
  • Ошибка Razor intellisense: функция «метод расширения» не может использоваться, поскольку она не является частью спецификации языка ISO-2 C #
  • Можно ли отобразить необработанный HTML-код из базы данных в ASP.NET MVC 3?
  • asp.net MVC3 razor: отображение actionlink на основе роли пользователя
  • MVC, кнопка отправки которого нажата
  • Interesting Posts

    Копирование многострочного текста в одну ячейку в Excel

    Программно установить настройки прокси-сервера браузера в C #

    Байт-массив для преобразования изображений

    1,35 В ОЗУ в 1,5-вольтовой системе – будет ли она жарить или разгоняться?

    Как точно встраиваемые свойства работают в WPF?

    Могут ли внутренние classы получить доступ к закрытым переменным?

    Chrome отменяет CORS XHR при перенаправлении HTTP 302

    Android Studio: адаптируемая папка: как разместить изображения для нескольких точек на дюйм?

    Как запустить процесс как режим администратора в C #

    Заменить отсутствующие значения со значением столбца

    Сообщение об ошибке “unreported exception java.io.IOException; должны быть пойманы или объявлены брошенными “

    API-ключ для GCM неожиданно недействителен? Несанкционированная ошибка (401)

    Разница между const и const volatile

    Не удается установить новый жесткий диск

    Подключение к точке доступа Wi-Fi с помощью определенного MAC-адреса

    Давайте будем гением компьютера.