25

コントローラからレイアウトを設定する方法はありますか?

試しました:

ViewData["Layout"] = "..."
return View("view", Model);

一部の人にとっては奇妙に聞こえることはわかっています....

4

6 に答える 6

38

ビューメソッドには、マスターレイアウトを次のように設定するためのオーバーロードがあります

return View ("NameOfView",masterName:"viewName");
于 2012-04-18T07:52:24.100 に答える
12

アクション メソッド では、 ViewResultクラスのMasterNameプロパティを使用してレイアウト ページを変更できます。

public ActionResult Index()
        {
            var myView = View();
            myView.MasterName = "~/Views/Shared/_Layout2.cshtml"; 
            return myView;
        }
于 2015-07-29T23:50:35.273 に答える
7

コードを使用して、これをビューに配置できます。

@ {
    Layout = ViewData["Layout"];
}
于 2012-04-18T07:48:33.493 に答える
6

Daren Dimitrov は、属性を使用してこれについて非常に優れた回答を提供しています。

ASP.NET MVC 3 razor ViewStart ファイルで異なるレイアウトを指定するにはどうすればよいですか?

于 2012-04-18T08:01:56.283 に答える
4

コントローラーでは、このようなマスターページを設定できます。私はMVC 5.2を使用しています

return View("ViewName", "MasterPageName", model)
于 2016-07-13T14:07:05.917 に答える
-2

Views ディレクトリに _ViewStart.cshtml ファイルがある場合、同じフォルダー (およびサブフォルダー) 内のすべてのビューのレイアウトを自動的に設定できます。

@{
    Layout = "~/Views/Shared/Layout.cshtml";
}
于 2012-04-20T13:02:29.210 に答える