Пользовательская зона в альтернативном представлении содержимого в Orchard 1.7

У меня есть требование создать другую структуру для домашней страницы моего сайта Orchard.

Я узнал, что если вы используете слой «TheHomepage», когда вы визуализируете домашнюю страницу, запускаются виджеты, и соответствующее свойство Model.[ZoneName] устанавливается с зоной (или формой или чем-то еще, не зашел так далеко), который получает передается в Layout.cshtml.

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

HomeMagazine_1 и HomeMagazine_2

Когда я прикрепляю виджет к этим зонам и нахожусь на домашней странице, виджеты запускаются, и я вижу Model.HomeMagazine_1 и Model.HomeMagazine_2 в модели, переданной в Layout.cshtml.

Моя проблема в том, что я хочу, чтобы пользовательская страница отображала эти зоны. Итак, я добавил новый вид:

Контент-url-homepage.cshtml

Где я визуализирую зоны:

<div class="container">
@if (Model.HomeMagazine_1 != null)
{
@Zone(Model.HomeMagazine_1)
}

Однако проблема заключается в том, что модель, которая передается в Content-url-homepage.cshtml, представляет собой ZoneHolding, у которого нет свойства HomeMagazine_1.

Я понимаю причину этого, я спрашиваю, как добиться того, что я проиллюстрировал, есть ли способ добраться до Layout.cshtml ZoneHolding. Я не уверен, потому что Layout.cshtml выполняется после Content-url-homepage.cshtml.

Мне нравится работать с Orchard, но иногда возникают интересные проблемы!


person James    schedule 06.03.2014    source источник


Ответы (1)


Я обнаружил, что могу использовать:

Layout.HomeMagazine_1

Который имеет ожидаемый эффект. Я отмечу это как ответ, когда смогу, если только у кого-нибудь нет лучшего предложения о том, как этого добиться.

person James    schedule 06.03.2014
comment
Это правильный путь. Я делаю это сам в некоторых моих темах. - person Bertrand Le Roy; 07.03.2014