3

asp mvc3プロジェクトを作成しました。選択したコントローラーに応じて、異なる_Layout.cshtmlが必要です。これは、コントローラー1には2つのボタンがあり、コントローラー2には3つ、コントローラー3には4つのボタンがあるためです。各コントローラーは特定のタイプのユーザー用であるため、ログインによって異なります。

コントローラとそのビューを別のLayout.cshtmlにリンクするにはどうすればよいですか。現在、1つのレイアウトがあり、Sharedフォルダの下にあります。

ありがとう!

4

2 に答える 2

11

ビューは、コントローラーではなく、レイアウトを決定する必要があります。

コントローラは、返されるビューを決定するだけです。

次に、ビューの上部でレイアウトを指定できます。データに基づいて変更するために、その周りにIfステートメントを追加できます

@{
    if(ViewBag.someValue)
       Layout = "~/Views/Shared/_Layout.cshtml";
    else
        Layout = "~/Views/Shared/_otherLayout.cshtml";
}
于 2011-04-06T23:00:25.027 に答える
2

この時点で、もう1つは少し古く、mvc 5を使用しているため、ブラケットがない場合に問題が発生する可能性があります。 ビューを使用してロジックを実行したい場合は、より完全な答えがあります。

コントローラ

public ActionResult Index()
{
    ViewBag.Admin = 1;
    return View();
}

意見

@{

    if (ViewBag.Admin == 1)
    {
        Layout = "~/Views/Shared/_AdminLayout.cshtml";
    }
    else
    {
        Layout = "~/Views/Shared/_Layout.cshtml";
    }

}
于 2016-07-28T07:59:46.493 に答える