Что ж, я думаю, что вы ищете здесь, это частичные представления.
Вы можете встроить представления MainNav и SubNav в представление SiteContent.
вот как это происходит.
создайте ваши MainNav и SubNav как частичные представления.
в вашем представлении SiteContent используйте метод Html.RendarPartial для включения двух других представлений.
<%= Html.RenderPartial("MainNav", Model); %>
<%= Html.RenderPartial("SubNav", Model); %>
Теперь для остальныхчасть о том, как получить данные в представлениях MainNav и SubNav.Сейчас самое время познакомиться с ViewModels.Модели представлений - это не что иное, как классы с некоторыми свойствами, которые вы хотите дать отображаемому представлению.
В вашем случае я бы создал 3 модели представлений.
- SiteContentViewModel содержит содержимое, которое будет отображаться на вашей странице.
- MainNavViewModel содержит данные, которые будут отображаться в MainNav.
- SubNavVIewModel содержит данные, которыебудет отображаться в SubNav.
, тогда я включу MainNavViewModel & SubNavVIewModel в SiteContentViewModel.
(если вы уверены, что каждое представление SiteContent будет иметь MainNav и SubNav)
Теперь вы можете заполнить каждую модель представления теми данными, которые вам нужны.
вот как будет выглядеть код.
public class SiteContentViewModel {
public MainNavViewModel MainNav { get; set;}
public SubNavVIewModel SubNav { get; set;}
// Any Other Data Needed In The SiteContent View (ex. PageTitle)
}
public class MainNavViewModel {
// Any Data Needed In The MainNav View
}
public class SubNavVIewModel {
// Any Data Needed In The SubNav View
}
Теперь вернемся к частичным видам, используя созданные нами модели представления, мы можем включить такие частичные элементы.
<%= Html.RenderPartial("MainNav", Model.MainNav); %>
<%= Html.RenderPartial("SubNav", Model.SubNav); %>
одна важная вещь - сделать наши представления строго типизированными.
- Представление SiteContent типа SiteContentViewModel
- Представление MainNav типа MainNavViewModel
- SubNav vIew типа SubNavViewModel
и в вашем методе действия SiteContent вы сделаете что-то вроде этого
// Initialize the ViewModels.
SiteContentViewModel model = new SiteContentViewModel();
model.MainNav = new MainNavViewModel();
model.SubNav = new SubNavVIewModel();
// Get Data From DB and set the properties that you created in your view models.
// examples.
model.PageTitle = // some data from db.
model.MainNav.(Some Property) = // some data from db.
model.SubNav.(Some Property ) = // some data from db.
return View(model);
надеюсь, что это поможет ... для получения дополнительной информации вы можете увидеть эта ссылка