2017-08-03 22 views
0

我想找到一種方法來使用Razor網頁中的替代標頭而不使用兩個_SiteLayout頁面,每個_SiteLayout呈現不同的_header頁面。使用條件邏輯調用網站佈局頁面中的替代標頭

我想要實現這一點 - 如果default.cshtml頁面被調用使用header-1,如果任何其他頁面被調用使用header-2。我已經嘗試了各種不同的邏輯,沒有喜悅,包括:IsCurrentPage,Request.QueryString,Request.Url;和CurrentPage.Name。

E.G.

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

而且

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

有沒有人有一個簡單的方法來實現這一目標嗎?

回答

0

雖然我花在這個很長一段時間,發佈後沒多久,我發現答案感謝:Erik Philips

添加到_SiteLayout:

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

添加到默認頁面

@section customHeader{ 
This is custom header 
} 

公共標題不會在默認頁面中調用,因爲改爲指定customHeader;而所有其他頁面使用正常標題