0
私たちはASP.NET Coreアプリケーションにいくつかの役割を持っています。各役割に独自のレイアウトが必要です。これを行うために、各役割ごとに別々のレイアウトを考えています。ASP.NET MVCコアの複数のレイアウト
~/Views/Shared/Layouts/_DefaultLayout.cshtml
~/Views/Shared/Layouts/_Role_1_Layout.cshtml
~/Views/Shared/Layouts/_Role_2_Layout.cshtml
~/Views/Shared/Layouts/_Role_3_Layout.cshtml
~/Views/Shared/Layouts/_Role_4_Layout.cshtml
これらの役割を切り替えるために我々はこれまで~/Views/_ViewStart.cshtml
を変更します。これは最初の場所で働く
@{
if (this.User.IsInRole("Role1"))
{
Layout = "~/Views/Shared/Layouts/_Role_1_Layout.cshtml";
}
else if (this.User.IsInRole("Role2"))
{
Layout = "~/Views/Shared/Layouts/_Role_2_Layout.cshtml";
}
// ....
else
{
Layout = "~/Views/Shared/_DefaultLayout.cshtml";
}
}
が、私が代わりに現在のレイアウトを切り替えると、たとえばRole1
用を持つ別のユーザーでログインしたときに_Role_1_Layout.cshtml
を使用するには、空白のページです。
切り替えても適切なレイアウトになっていますか?たとえば、Layout = ...のそれぞれにブレークポイントを設定し、役割を切り替える場合は、少なくとも期待している適切なレイアウトにヒットしますか?これが機能すれば、少なくともこれを排除することができます。そうでない場合、これは問題を解決するために異なる角度を見つけ出すのに役立ちます。ああ、切り替えて...あなたはログイン/ログオフと再ログインを意味するのですか?または、他の何か? – Vlince