1

私のマスター ビュー (_Layout.cshtml) には、ツリー メニューがあります。

メインページ(ホーム)でそのツリーメニューを削除したい。
残りのレイアウトはそのままにしておく必要があります。家の本体がツリー メニューのスペースを占有するようにします。

効率的な組み込みオプションはありますか?

4

1 に答える 1

4

1つのアプローチは、ツリーメニューを表示/除外するためのフラグを使用してカスタムビューページを作成することです。

public class CustomViewPage<T> : WebViewPage 
{
    public bool ShowTreeMenu 
    { 
        get 
        {
            return (ViewBag.ExcludeMenu == null || ViewBag.ExcludeMenu == false);
        }         
    }
}

レイアウトファイル内からカスタムクラスを継承します。

@inherits CustomViewPage<dynamic>

次に、(レイアウトファイルで)次の場合にのみツリーメニューを表示します。

<nav>
@if (ShowTreeMenu)
{ 
    @Html.Partial("_TreeMenu")                            
}
</nav>

メニューを除外する必要がある場合は、コンテンツページからフラグを設定します。

@{
  ViewBag.Title = "Home Page";
  ViewBag.ExcludeMenu = true;
 }
于 2012-11-11T08:42:28.113 に答える