2013-03-11 17 views
5

Angenommen, ich habe eine _Layout.cshtml, wo ich eine linke Seitenleiste rendere, die auf jeder Seite meiner Website üblich ist. Etwas in dieser Richtung - ein Menü, zum BeispielKann ich Teilansichten in _Layout.cshtml bedingt rendern?

<div id="left-sidebar"> 
    @Html.Action("_MenuView", "LeftSideMenu") 
</div> 

Ein Feature, das ich haben möchte, wäre eine weitere Teilansicht hinzuzufügen, aber es nur in bestimmten Bereichen der Website angezeigt werden.

Zum Beispiel, in der Blog-Sektion möchte ich vielleicht eine Liste von Post-Kategorien oder eine Baumansicht der Beiträge anzeigen.

<div id="left-sidebar"> 
    @Html.Action("_MenuView", "LeftSideMenu") 

    @if ("???") 
    { 
     @Html.Action("_BlogTreeView", "BlogEntries") 
    } 
</div> 

Wie könnte ich das tun? Ich weiß, dass ich "_BlogTreeView" anzeigen möchte, wenn die Ansicht, die ich rendere, von BlogController zurückgegeben wird ... Wohin gehe ich von dort?

+0

Warum Abschnitte nicht verwenden? Erstellen Sie einen Abschnitt in der _layout und implementieren Sie es in den entsprechenden Ansichten – Silagy

Antwort

8

In Ihrem Layout, fügen Sie diese section

@RenderSection("blogEntries", false) 

Dann in jeder Ansicht, wo Sie diese die Teilansicht hinzufügen wollen zeigen:

@section blogEntries { 
    @Html.Action("_BlogTreeView", "BlogEntries") 
} 
+0

Ich wusste, dass ich eine einfache Lösung fehlte ... danke! – Evgeny

+0

Danke das hat sehr geholfen. – WiseGuy

Verwandte Themen