この質問が開く方向は本当にたくさんあります。これらの道の多くは、現在の設計によって決定されます。
他の人はカットアンドペーストのソリューションですが、
現在、ウェブサイトのマスター レイアウトとは完全に異なるが、互いに類似している 2 つのページ (管理ページなど) または他の「予測可能な」ページと同じレイアウトのページがあるとします。次に、これらのページのレイアウトを変更することをお勧めします - それぞれのレイアウトを用途別に多様化します:
管理ページ
@{
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
通常のページ
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
しかしここで、これらのページをメイン レイアウトから切り離したいが、いくつかの情報 (例: 管理者、VIP タブ) に基づいて少し異なる必要があるというあなた/私/誰でも、ここでアイデアが少し変わるとしましょう。コントローラーに何をすべきかを決定させたいか、ビューに既にこの情報がありますか...データは理想的にはViewModelまたはViewBagまたはSessionデータに入れることができます-これも依存します:)
ユーザー別 - HTTP コンテキスト (カット アンド ペースト ソリューション...)
<div id="specific-content">
@if (User.Identity.IsAuthenticated && User.IsInRole("admin")) <!--RoleProvider-->
{
<div>My Admin Content!</div>
<!--In your case render something (or not)!-->
@{ Html.RenderPartial(...); }
}
else
{
<div>I'm not special :( </div>
}
</div>
または、上記のコードをレイアウトまたはページに配置する代わりに、Partial
彼らも私が考えていたもう1つのことです。それは、ユーザーが特定の人である場合にページにリダイレクトすることです。これは私が大ファンではありません-レイアウトとUser
ビューに固執します。
これらは私が念頭に置いていたより単純なアイデアです。