MVC вложенные представления и частичные представления

Я нахожусь в процессе создания проекта-прототипа с использованием MVC 3, и я столкнулся с ситуацией, для которой я, кажется, не могу найти ответ, и кажется, что я мог бы подойти к проблеме неправильно.

Краткий обзор моего проекта; он основан на шаблоне MVC, который вы получаете с Visual Studio, и я использую ссылки (вкладки) в прилагаемом представлении _Layout для доступа к некоторым другим моим представлениям. Одна из этих ссылок открывает второе частичное представление, которое снова содержит ссылки для большего количества представлений (специфично для администратора. Отсюда и разделение). Проблема, с которой я сталкиваюсь, заключается в том, что я не могу отображать@RenderBody во втором частичном представлении, которое, как я понимаю, состоит в том, что у вас не может быть более одного@RenderBody в готовом файле HTML, что имеет смысл.

So my question is, how can I display the views in this manner? Also, probably more importantly, is this the correct way to achieve this 'sub menu' system I am trying for or is there a better way to achieve this?

Здесь представлены соответствующие части представлений, во-первых, это «главное». _Layout file:

<body>
    <div class="page">
        <header>
            <div id="title">
                <h1>Test App</h1>
            </div>
            <nav>
                <ul id="menu">
                    <li>@Html.ActionLink("Home", "Index", "Home")</li>
                    @if (User.Identity.IsAuthenticated)
                    {
                        <li>@Html.ActionLink("Contracts", "List", "Contract", new { user=User.Identity.Name, page=1 }, null)</li>
                    }
                    @if (User.IsInRole("Administrator"))
                    {
                        <li id="admin">@Html.ActionLink("Administration", "Administration", "Home")</li>
                    }
                </ul>
            </nav>
        </header>
        <section id="main">
            @RenderBody()
        </section>
        <footer>
        </footer>
    </div>
</body>

При нажатии на<li id="admin">@Html.ActionLink("Administration", "Administration", "Home")</li> ссылка, затем контроллер Home возвращает второй частичный вид, показанный ниже:

<header>
    <div id="admintitle">
        <h1>Administration</h1>
    </div>  
</header>
<body>
    <div id="div-1a">
         <nav>
            <ul id="adminmenu">
                <li>@Html.ActionLink("Contact", "List", "Contact")</li>
                <li>@Html.ActionLink("Home", "Index", "Home")</li>
            </ul>
        </nav>
    </div>
    <div id="div-1c">
        <h1>Test</h1>   
    </div>
    <section id="adminmain">
        @RenderBody()
    </section>
</body>

Когда я пытаюсь запустить код, он терпит неудачу из-за второго@RenderBody, что понятно.

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Спасибо большое.

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

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