Использование движка Razor на строках, а не на просмотрах - PullRequest
7 голосов
/ 21 ноября 2011

Я бы хотел использовать движок Razor без файлов представления (cshtml), но для строк.Я хочу сделать это из MVC, я видел примеры, которые используют

new RazorViewEngine().Render

, но я не могу найти метод Render, это что-то из старых дней MVC?

Я также видел примеры, в которых используется Razor.Parse, но я тоже не могу его найти - возможно, отсутствует ссылка (но она должна быть там, если я уже использую MVC, верно?)

Целесообразно ли вообще использовать Razor, если все, что мне нужно сделать, это вставить 3-4 параметра в строку HTML?Я думаю, что я немного увлечен MVC сейчас и, возможно, не думаю, что прямо.Я планирую кэшировать строки HTML в памяти и просто передавать модели из БД.

Спасибо

Ответы [ 3 ]

5 голосов
/ 21 ноября 2011

Чтобы использовать RazorEngine для разбора строк, вам потребуется RazorEngine.dll, который можно загрузить с http://razorengine.codeplex.com/

Чтобы разобрать строку с помощью движка Razor, просто используйте следующий пример:

var model = new { Name = "Test" };
var template = "Hello @Model.Name";

var result = Razor.Parse(template, model);

От того, целесообразно ли использовать его для анализа строки, действительно зависит от того, для чего вы ее используете. Если вы считаете, что вам понадобится гибкость, которую предлагает Razor, я бы порекомендовал ее, но при сравнении со стандартной заменой строк она действительно имеет некоторое снижение производительности.

3 голосов
/ 21 ноября 2011

Вы можете взглянуть на RazorEngine .

0 голосов
/ 21 ноября 2011

Существует класс RazorParser с Методом анализа , который принимает TextReader в качестве входного параметра. Однако все пространство имен System.Web.Razor.Parser помечено как

Этот тип / член поддерживает инфраструктуру .NET Framework и не является предназначен для использования непосредственно из вашего кода.

так что вы должны понять это сами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...