サイト構造を持つ基本レイアウトがあります。ASP MVC 4のコントローラごとに異なるデザインパーツを持つ一般的なレイアウト
<html>
<head>...</head>
<body>
<div id="sidebar">...</div>
<div id="entry">@RenderSection("Entry", true)</div>
<div id="footer">...</div>
</body>
各コントローラの各アクションは、そのビュー自体のエントリセクションで定義:このデフォルトのレイアウトにIは、ヘッダタグ、本体構造とフッタを定義します。
<!-- in View/Index.cshtml -->
@section Entry {
Hello from Index action.
}
<!-- in View/Uploads.cshtml -->
@section Entry {
Hello from Uploads action.
}
<!-- in View/Users.cshtml -->
@section Entry {
Hello from Users action.
}
しかし、私はまた、コントローラごとに異なるサイドバーを定義したいと考えています。 @RenderSection( "SideBar"、true)をメインレイアウトに配置すると、各コントローラアクションのサイドバーコードを繰り返す必要があります。私はまた、メインのレイアウトでサイドバーデザインコードを定義することはできません。コントローラごとに異なるsibebarsを使用したいからです(ただし、コントローラの各アクションに同じサイドバーを使用します)。
各ビューでサイドバーのデザインコードを繰り返さずにこの問題を解決するにはどうすればよいですか?
解決策https://stackoverflow.com/a/5573970が見つかりましたが、コントローラごとに複製ベースサイト構造が必要になります。
答えと私の悪い英語:(申し訳ありませんのおかげでは。
Controでどのようにデフォルトレイアウトを使用できますかllersのレイアウト? – Dmitriy
@ {Layout = "〜/ Views/Shared/Default.cshtml"; } –
ああ、私はレイアウトでレイアウトを定義する能力を忘れていました。ありがとう! – Dmitriy