Эквивалент макета/вложенного макета Sitecore MVC

У меня есть несколько разных типов страниц, которые должны быть оформлены по-разному, но будут извлекать информацию из одних и тех же полей.

Используя веб-формы с Sitecore, я, вероятно, сделал бы эти два разных подмакета. Любой из них может быть применен к одному и тому же типу элемента.

Я ищу что-то подобное для Sitecore MVC.

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

Мне было интересно, есть ли другой вариант, о котором я не знаю, который каким-то образом передает вложенные частичные представления в руки редакторов контента так, как это делают макеты/подмакеты?


person Teeknow    schedule 03.09.2014    source источник
comment
Вы должны использовать рендеринг просмотра или рендеринга контроллера. По вашему мнению, вы используете заполнитель, например ответ Дерека   -  person ThinhLe    schedule 18.05.2017


Ответы (2)


Такого рода требования обычно можно удовлетворить, имея несколько визуализаций вида, использующих одну и ту же модель. При использовании рендеринга представления Sitecore сам становится контроллером и отвечает за объединение модели с представлением Razor (.cshtml). Затем вы можете использовать визуализацию представления так же, как вложенные макеты, и применять их к стандартным значениям шаблона или разрешать их вставку в заполнители.

Отрисовка представления не обязательно должна иметь модель, и довольно распространено иметь отрисовку представления, которая просто содержит некоторый HTML-код и вложенный заполнитель. Пример:

<div class="container">
    @Html.Sitecore().Placeholder("my-nested-placeholder")
</div>

ПРИМЕЧАНИЕ. Если требуется более сложная логика (например, пользовательская маршрутизация, синтаксический анализ строки запроса и т. д.), вы также можете использовать несколько визуализаций контроллера).


Другой подход, который я иногда использую для изменения стилей, заключается в применении «класса тела» к моим страницам через стандартные значения шаблона. Поле класса body может быть простым однострочным текстовым полем, скрытым для начинающих пользователей. Затем вы можете внедрять классы CSS в разные типы страниц и изменять и/или настраивать элементы разметки с помощью наследования CSS.

person Derek Hunziker    schedule 03.09.2014

Эквивалентами подмакетов в Sitecore MVC являются визуализация представления и визуализация контроллера (как уже сказал Дерек). Я бы также предложил создать две отдельные визуализации просмотра и использовать одну и ту же модель.

Другой подход к выбору используемого рендеринга при условном рендеринге. Если у вас есть один и тот же запрос элемента и вам нужно другое представление для нескольких условий, возможно, стоит попробовать. Хорошей отправной точкой для этого является сообщение в блоге от Джона Уэста и Поваренная книга обработчика правил.

person Kevin Brechbühl    schedule 04.09.2014