У меня есть требование создать другую структуру для домашней страницы моего сайта 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, но иногда возникают интересные проблемы!