記事詳細
- 投稿日
- 2026年10月28日19時44分
-
タイトル
-
ASP.NET Core MVC: Viewに特定のLayoutを設定する方法を教えてください。
- 内容
-
SP.NET Core MVC で 特定のビューにだけ別の Layout を設定する方法はいくつかあります。
基本的には Razor ビュー (.cshtml) 内でLayoutプロパティを指定することで実現できます。1. ビュー内で直接
Layoutを指定する方法ビューの先頭に以下のように書きます。
- パス指定はルートからの相対パス(
~)またはViews/Sharedなどのフォルダ構造に合わせて記述します。 - このビューだけが
_CustomLayout.cshtmlを使い、他のビューは_Layout.cshtmlを使います。
2. コントローラーから
ViewData["Layout"]を渡す方法コントローラーでレイアウトを切り替える値を渡し、ビューでそれを使います。
Controller
View
- コントローラー側で条件に応じてレイアウトを切り替えられます。
3.
_ViewStart.cshtmlを使って条件分岐_ViewStart.cshtmlは全ビューの読み込み前に実行されるため、条件付きでレイアウトを変えられます。_ViewStart.cshtml
- URL やユーザーの状態によって自動的にレイアウトを切り替えられます。
注意点
- Layout を null にするとレイアウトなしでビューがレンダリングされます。
- レイアウトファイルは通常
Views/Sharedに置きますが、ビュー専用フォルダに置くことも可能です。 - レイアウトファイル内の
@RenderBody()は必須(ビューのコンテンツが挿入される場所)。
💡 おすすめ
単発のビューだけレイアウトを変えるなら ビュー内で直接Layoutを指定するのが最も簡単です。
複数ビューや条件付き切り替えなら_ViewStart.cshtmlまたはコントローラーからViewDataを使う方法が便利です。もし希望があれば、私が 複数レイアウトを切り替える実用的なサンプルプロジェクトを作って差し上げますが、作りますか?
Powered by Froala Editor
- パス指定はルートからの相対パス(
-
添付画像
-
画像はありません
- Genreのカテゴリ-名
- Views