ASP.NET MVC Razor部分和部分
我是ASP.NET MVC和Razor的新手。 我们一直在修改和开发基于现有代码。 因此,有很多重复(呃!)。 所以我开始查看部分页面并了解章节。 我按照这些教程,但我仍然有点困惑。
ASP.NET MVC 3:使用Razor进行布局和部分
在ASP.NET MVC中使用共享布局的各种方法
具有默认内容的可选剃刀部分
剃刀,嵌套布局和重新定义的部分
我已经能够在其中创建带有部分的部分。 我的问题是:
虽然一个部分将始终根据用户选择而改变,但我可能不想吹走内容部分。 我可能只想根据用户选择的子菜单项添加新选项卡。
计划是有一个包含_Header的_Layout和SideBar的一个Section (子菜单)。 根据用户在_Header中的选择,子菜单选项列表将在SideBar中更改, 内容将是一个容器,可以在选择主页按钮时包含网格 ,或者它可以包含其他按钮的选项卡视图。
问题
假设用户从_Header中选择Billing ,然后从左侧的Sub Menu中选择两个项目; 在“内容”部分中,应显示两个选项卡(一个用于子菜单中选择的每个项目)。 然后,如果用户从_Header中选择Reports , SideBar应该更改为显示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") My Site Header
@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.