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 - &copy; 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>

Ответы на вопрос(0)

Ваш ответ на вопрос