HomeContentPartial.cshtml
осительно новичок в ASP.NET MVC и Razor. Мы модифицировали и разрабатывали на основе существующего кода. Таким образом, много дублирования (тьфу!). Поэтому я начал смотреть на Частичные страницы и узнавать о Разделах. Я следовал этим урокам, но я все еще немного сбит с толку.
ASP.NET MVC 3: макеты и разделы с помощью Razor
Различные способы использования Shared Layout в ASP.NET MVC
Дополнительные разделы бритвы с содержимым по умолчанию
Бритва, вложенные макеты и переопределенные разделы
Я был в состоянии создать разделы с частями в них. Мой вопрос:
Хотя один раздел всегда будет меняться при выборе пользователя, я не хочу выбрасывать раздел содержимого. Я могу просто захотеть добавить новую вкладку на основе пункта подменю, выбранного пользователем.
План состоит в том, чтобы иметь_layout который содержит_Header иРаздел дляSideBar (Подменю). На основании выбора пользователя в_Headerсписок параметров подменю изменится вSideBar исодержание будет контейнер, который может содержатьсетка когда кнопка Домой выбрана, или она может содержатьВкладки просмотр для других кнопок.
ПроблемаДопустим, пользователь выбираетBilling из_Header а затем выбирает два элемента изПодменю слева; в разделе «Содержание» должны отображаться две вкладки (по одной для каждого элемента, выбранного в подменю). Затем, если пользователь выбираетОтчеты из_Header,SideBar следует изменить, чтобы отобразить соответствующийПодменю предметы дляОтчеты но я не хочу две вкладки дляBilling сдуться. Вместо этого я хочу добавить дополнительные вкладки для каждого элемента, выбранного пользователем изОтчеты Подменю.
Ниже приведен код из демонстрации, который показывает, как я поместил частичный код страницы в разделы. Очевидно, я все еще смущен подходом, который я должен использовать, чтобы выполнить макет, который мне нужен.
_Layout.cshtml<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/Scripts/jquery-1.10.2.min.js")
</head>
<body>
<div id="header">
<h1>My Site Header</h1>
</div>
@if (IsSectionDefined("SideBar"))
{
<div id="sidebar">
@RenderSection("SideBar")
</div>
}
<div id="content">
@RenderBody()
</div>
<div id="footer">
<p>Site Footer - © Santa Clause</p>
</div>
</body>
</html>
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<p>This sidebar has "Home Page" specific content.</p>
<ul>
<li><a href="#">Link One</a></li>
<li><a href="#">Link Two</a></li>
<li><a href="#">Link Three</a></li>
</ul>
<p>The time is: @DateTime.Now.ToShortTimeString()</p>
HomeContentPartial.cshtml<h2>Welcome to my Site</h2>
<p>This is our home page.</p>
<p>Not super exciting is it?</p>
<p>Yada, Yada, Yada.</p>