【发布时间】:2012-07-17 10:27:23
【问题描述】:
我正在将一个经典的 ASP.NET 应用程序(ASPX 页面)移植到 ASP.NET MVC 3。目前我使用 ContentPlaceHolder 将内容动态添加到特定的 ASP.NET ASPX 页面。考虑以下几点:
<!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>
所以在上面的 sn-p 中,我有 3 个内容占位符,因此我可以根据单个页面添加其他样式、脚本和内容。我这样做的原因是每个页面只加载与页面内容相关的样式、脚本(例如,如果它是登录页面,我可能会添加一个脚本来检查登录详细信息是否有效)
考虑以下 MVC 3 Razor View sn-p:
<!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>?
【问题讨论】:
-
您可能希望使用sections 来实现这一目标。
-
@ManuLetroll:您真的应该将其发布为答案。
-
@ManuLetroll - 是的!答案属于你哥们! Manu 将其作为答案发布,而 Matthew 应该接受该答案。抱歉,我没有仔细阅读评论并发布在 .
-
事实上我打算发布一个答案,但出于某种原因我发表了评论,我想更详细一点,但当时没有时间。请接受现有答案:)
标签: asp.net asp.net-mvc-3 visual-studio-2010 razor