Подтвердить что ты не робот

.NET Razor engine - реализация макетов

Я использую следующий фрагмент для включить настройку Razor в моем решении (вне ASP.NET MVC3). Можно ли легко реализовать макеты?

Фоновая информация:

Я на этом этапе (шаблоны скомпилированы в compiledTemplateAssembly):

var template = (RazorTemplateBase<TModel>) compiledTemplateAssembly.
    CreateInstance("RazorSpace." + entry.TemplateName + "Template");
template.Model = model;
template.Execute();
var output = template.Buffer.ToString();
template.Buffer.Clear();
return output;

Я могу представить себе свойство Layout в моем классе RazorTemplateBase. Но потом? Я понимаю, что Html.Partial - вспомогательная функция, которую я могу просто реализовать для анализа шаблона. Но как разобрать эти вызовы методов renderBody() или renderSection(), чтобы принимать другие виды Razor?

4b9b3361

Ответ 1

В настоящее время я работаю над чем-то очень похожим. Это основанная на Нэнси структура шаблонов для интерфейсов. Я расширил реализацию Nancy Razor от Phil Haack. Мне удалось получить Partials, Templated Helpers и Layouts.

Чтобы сделать макет, у меня есть свойство Layout, и внутри макета у меня есть заполнитель содержимого "{{content}}". Поэтому, когда я визуализую представление, если установлено свойство Layout, я визуализирую макет и заменяю его.

Проект называется Appia. Посмотрите на примеры просмотров.

Вот моя реализация baseView реализация baseView и вот механизм просмотра код. Это занимает много от реализации MVC Razor, а также имеет некоторые специфичные для Нэнси вещи, но не должно быть слишком сложно понять, что происходит.