2012-07-17 89 views
1

我將經典的ASP.NET應用程序(ASPX頁面)移植到ASP.NET MVC 3.目前,我使用ContentPlaceHolder(s)動態地將內容添加到特定的ASP.NET ASPX頁面。考慮以下幾點:將ASP.NET移植到MVC 3 Razor

<!DOCTYPE html> 
<html> 
    <head> 
     <link href="MyStyleSheet.css" rel="Stylesheet" type="text/css" /> 
     <asp:ContentPlaceHolder ID="Styles"> 
     </asp:ContentPlaceHolder> 
     <script type="text/javascript" src="jQueryAndOtherScripts.js"></script> 
     <asp:ContentPlaceHolder ID="Scripts"> 
     </asp:ContentPlaceHolder> 
    </head> 
    <body> 
     <div id="Container"> 
      <asp:ContentPlaceHolder ID="Content"> 
      </asp:ContentPlaceHolder> 
     </div> 
    </body> 
</html> 

所以在片段上方我有3個內容佔位符,這樣我就可以根據個人頁面上添加另外的樣式,腳本和內容。我這樣做的原因是,每個頁面只加載樣式,與頁面內容相關的腳本(例如,如果它是登錄頁面,我可能會添加一個腳本來檢查登錄信息是否有效)

考慮以下MVC 3 Razor視圖片段:

<!DOCTYPE html> 
<html> 
    <head> 
     <link href="MyStyleSheet.css" rel="Stylesheet" type="text/css" /> 
     <script type="text/javascript" src="jQueryAndOtherScripts.js"></script> 
    </head> 
    <body> 
     <div id="Container"> 
      @RenderBody() 
     </div> 
    </body> 
</html> 

現在的問題... RenderBody()取代<asp:ContentPlaceHolder ID="Content"></asp:ContentPlaceHolder>,但我該怎麼爲<asp:ContentPlaceHolder ID="Styles"></asp:ContentPlaceHolder><asp:ContentPlaceHolder ID="Scripts"></asp:ContentPlaceHolder>更換使用?

+3

您可能需要使用[第(http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and -sections-with-razor.aspx)來實現這一點。 – 2012-07-17 10:29:55

+0

@ManuLetroll:你真的應該發佈這個答案。 – 2012-07-17 10:56:19

+0

@ManuLetroll - 是的!答案屬於你!馬努把它作爲答案,馬修應該接受這個答案。對不起,我讀了評論並發表了評論。 – bhuvin 2012-07-17 11:02:17

回答

3

有爲此目的sections

+0

謝謝你們。在我問之前,我真的應該谷歌它。我在提交這篇文章後找到了我正在尋找的答案!乾杯。 – series0ne 2012-07-17 12:22:48

+0

@MatthewLayton - 偉大的傢伙!在這種情況下接受適當的答案。我建議Manu Letroll回答它,並接受! – bhuvin 2012-07-18 05:39:54