私のウェブサイトには、ユーザー(管理者)のサブセットに対してのみレンダリングしたいセクション(浮動サイドバー)があります。セクションを表示するかどうかを判断するためにロジックをマスターレイアウトに置くことができますが、セクションがレンダリングされていないと、ページにエラーが発生することがあります。オプションでASP.Net MVC 3のセクションをレンダリングする方法はありますか?
例コード - Layout.cshtml ...
... code ...
@if(user.IsAdmin) {
@RenderSection("AdminSidebar", false)
}
例コード - MyPage.cshtml ...
@section AdminSidebar {
... code ...
}
は、誰もがこれを置くことなく、動作するように取得する方法を知っていますすべての子ページのロジック?
メモとして、IsSectionDefined( "AdminSidebar")はレイアウトファイルでのみ機能します。セクションが使用可能かどうかをテストするページでは機能しません。
Clever。私はそれが好きです。私は、MVCフレームワークが、エラーをスローする代わりに定義されていないセクションを無視したほうがいいと思いますが、これにより、私が望むようにセクションを定義することができます。 – Brian
@Brianしかし、それははるかにクリーンなitsmattによって提案されたrenderPartialを使用していないのはなぜですか? – gdoron
そのため、サイドバーを追加したいすべてのページの部分を作成する必要があります(ページに基づいたコンテキストに基づいています)。 – Brian