コントローラからレイアウトを設定する方法はありますか?
試しました:
ViewData["Layout"] = "..."
return View("view", Model);
一部の人にとっては奇妙に聞こえることはわかっています....
コントローラからレイアウトを設定する方法はありますか?
試しました:
ViewData["Layout"] = "..."
return View("view", Model);
一部の人にとっては奇妙に聞こえることはわかっています....
ビューメソッドには、マスターレイアウトを次のように設定するためのオーバーロードがあります
return View ("NameOfView",masterName:"viewName");
アクション メソッド では、 ViewResultクラスのMasterNameプロパティを使用してレイアウト ページを変更できます。
public ActionResult Index()
{
var myView = View();
myView.MasterName = "~/Views/Shared/_Layout2.cshtml";
return myView;
}
コードを使用して、これをビューに配置できます。
@ {
Layout = ViewData["Layout"];
}
Daren Dimitrov は、属性を使用してこれについて非常に優れた回答を提供しています。
ASP.NET MVC 3 razor ViewStart ファイルで異なるレイアウトを指定するにはどうすればよいですか?
コントローラーでは、このようなマスターページを設定できます。私はMVC 5.2を使用しています
return View("ViewName", "MasterPageName", model)
Views ディレクトリに _ViewStart.cshtml ファイルがある場合、同じフォルダー (およびサブフォルダー) 内のすべてのビューのレイアウトを自動的に設定できます。
@{
Layout = "~/Views/Shared/Layout.cshtml";
}