2012-11-13 28 views
3

在我的ASP.NET MVC應用程序,在我_ViewStart.cshtml文件,我有這樣的代碼如下 -ASP.NET MVC,_ViewStart.cshtml內容

<div>SHOW THIS</div> 

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

當呈現頁面時,我期待「SHOW THIS」顯示以上內容在_Layout.cshtml頁面中,而不是「SHOW THIS」出現在以下 _Layout.cshtml頁面中的內容。

這是正確的嗎?如果沒有,任何想法爲什麼會發生?你能建議如何讓它顯示在_Layout.cshtml內容之上嗎? 謝謝!

回答

3

佈局將首先被加載,並且內容將被插入佈局的呈現內容部分。如果您希望某些內容出現在該視圖的佈局中,則可以嘗試在控制器中設置ViewBag對象,然後在佈局中檢查該ViewBag對象。

或者你也可以在佈局中使用可選的部分,然後在視圖定義它:

在佈局:

@RenderSection("aboveSection", required: false) 

然後在您的視圖:

@section aboveSection{ 
    <div>SOME CONTENT</div> 
} 
+0

感謝您的回答馬特!奇怪的是,它會這樣工作。 –

0

也就是說預期的行爲。 「_Layout.chshtml」行只指定您將使用哪個父模板。

要重新排列內容,請在_Layout.cshtml中進行調整,並記下@RenderBody()的位置。

+0

感謝您的幫助,Neps! –