私は MVC 3 を使用してプロトタイプ プロジェクトを作成していますが、答えが見つからないように見える状況に遭遇しました。問題に間違った方法でアプローチしているようです。
私のプロジェクトの簡単な概要; これは、Visual Studio で取得した MVC テンプレートに基づいており、提供されている _Layout ビューのリンク (タブ) を使用して、他のいくつかのビューにアクセスします。これらのリンクの 1 つが 2 番目の部分ビューを開きます。このビューには、さらに多くのビューへのリンクが含まれています (管理者固有のため、分割)。私が抱えている問題は@RenderBody
、2 番目の部分ビューでビューを表示できないように見えることです。これは、完成した HTML ファイルに複数のビューを含めることができないためです@RenderBody
。これは理にかなっています。
私の質問は、この方法でビューを表示するにはどうすればよいですか? また、おそらくもっと重要なことですが、これは私が試みているこの「サブメニュー」システムを達成する正しい方法ですか、それともこれを達成するためのより良い方法はありますか?
ビューの関連部分は次のとおりです。最初は「メイン」_Layout ファイルです。
<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 コントローラーは以下に示す 2 番目の部分ビューを返します。
<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>
コードを実行しようとすると、2番目の が原因で失敗しますが@RenderBody
、これは理解できます。
さらに情報が必要な場合は、お知らせください。
どうもありがとう。