ASP.NET MVC Razor部分和部分

我是ASP.NET MVC和Razor的新手。 我们一直在修改和开发基于现有代码。 因此,有很多重复(呃!)。 所以我开始查看部分页面并了解章节。 我按照这些教程,但我仍然有点困惑。

ASP.NET MVC 3:使用Razor进行布局和部分

在ASP.NET MVC中使用共享布局的各种方法

具有默认内容的可选剃刀部分

剃刀,嵌套布局和重新定义的部分

我已经能够在其中创建带有部分的部分。 我的问题是:

虽然一个部分将始终根据用户选择而改变,但我可能不想吹走内容部分。 我可能只想根据用户选择的子菜单项添加新选项卡。

计划是有一个包含_Header的_LayoutSideBar的一个Section (子菜单)。 根据用户在_Header中的选择,子菜单选项列表将在SideBar中更改, 内容将是一个容器,可以在选择主页按钮时包含网格 ,或者它可以包含其他按钮的选项卡视图。

在此处输入图像描述

问题

假设用户从_Header中选择Billing ,然后从左侧的Sub Menu中选择两个项目; 在“内容”部分中,应显示两个选项卡(一个用于子菜单中选择的每个项目)。 然后,如果用户从_Header中选择ReportsSideBar应该更改为显示Reports的相应子菜单项,但我不希望Billing的两个选项卡被吹走。 相反,我想为用户从Reports子菜单中选择的每个项目添加其他选项卡。


下面是演示中的代码,它显示了我如何将部分页面代码放在Sections中。 显然我仍然对我应该采取的方法感到困惑,以完成我需要的布局。


_Layout.cshtml

     @ViewBag.Title @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") @Scripts.Render("~/Scripts/jquery-1.10.2.min.js")    @if (IsSectionDefined("SideBar")) {  } 
@RenderBody()

Index.cshtml

 @{ ViewBag.Title = "Home Page"; } @Html.Partial("HomeContentPartial") @section SideBar { @Html.Partial("HomeMenuPartial") } 

.CSS

 #header { background-color: #5c87b2; color: white; padding: 1px; } #content { float: left; margin: 10px; } #sidebar { float: left; margin: 10px; padding: 10px; border: dotted 5px red; width: 180px; } #footer { text-align: center; clear: both; } 

HomeMenuPartial.cshtml

 

This sidebar has "Home Page" specific content.

The time is: @DateTime.Now.ToShortTimeString()

HomeContentPartial.cshtml

 

Welcome to my Site

This is our home page.

Not super exciting is it?

Yada, Yada, Yada.