2017-08-03 1 views
0

Ich versuche, eine alternative Kopfzeilen in Razor-Webseiten zu verwenden, ohne Verwendung von zwei _SiteLayout-Seiten, wobei jedes _SiteLayout eine andere _header-Seite rendern.Verwenden Sie bedingte Logik zum Aufrufen alternativer Header in Site-Layout-Seite

Ich versuche, dies zu erreichen - Wenn die default.cshtml Seite aufgerufen wird, verwenden Sie Header-1, wenn eine andere Seite aufgerufen wird, verwenden Sie Header-2.

Ich habe alle Arten von verschiedenen Logik ohne Freude versucht, einschließlich: IsCurrentPage, Request.QueryString, Request.Url; und CurrentPage.Name.

E.G.

@if ((Request.QueryString["Default"] == null)) 
{ 
     @RenderPage("/shared/_header-1.cshtml") 
} 
else 
{ 
     @RenderPage("/shared/_header-2.chtml") 
} 

Und

@{ 
var pageUrl = this.Request.Url; 
} 
@if (pageUrl = "http://mycompany/Default.cshtml/") { 
@RenderPage("/shared/_header-1.cshtml"); 
} 
else 
{ 
@RenderPage("/shared/_header-2.cshtml"); 
} 

Hat jemand eine einfache Methode, um dies zu erreichen haben, bitte?

Antwort

0

Obwohl ich eine lange Zeit dafür ausgegeben, nicht lange nach der Veröffentlichung fand ich eine Antwort durch: Erik Philips

zu _SiteLayout hinzufügen:

@if (IsSectionDefined("customHeader")) 
{  
@RenderSection("customHeader") 
} 
else 
{ 
@RenderPage("/shared/_header.cshtml") 
} 

hinzufügen Seite auf Standard

@section customHeader{ 
This is custom header 
} 

Der allgemeine Header wird nicht auf der Seite Standard aufgerufen, da stattdessen customHeader angegeben wird. während alle anderen Seiten den normalen Header

verwenden