我將經典的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>
更換使用?
您可能需要使用[第(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
@ManuLetroll:你真的應該發佈這個答案。 – 2012-07-17 10:56:19
@ManuLetroll - 是的!答案屬於你!馬努把它作爲答案,馬修應該接受這個答案。對不起,我讀了評論並發表了評論。 – bhuvin 2012-07-17 11:02:17