我正在尝试使用umbraco:Macro标签在我的一个视图中创建razor @section,以便将特定于每个视图的脚本/样式添加到head标签中。 我当前的代码看起来像这样(母版页的头部):
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<link rel="stylesheet" type="text/css" href="/css/foundation.min.css">
<script type="text/javascript" src="/js/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="/js/responsiveslides.js"></script>
<script type="text/javascript" src="/js/js.js"></script>
<umbraco:Macro runat="server" language="cshtml">
@if(IsSectionDefined("JSIncludes"))
{
@RenderSection("JSIncludes")
}
@if(IsSectionDefined("CSSIncludes"))
{
@RenderSection("CSSIncludes")
}
</umbraco:Macro>
</head>
和此(视图中的实际部分):
<asp:Content ContentPlaceHolderId="ContentPlaceHolderDefault" runat="server">
<umbraco:Macro runat="server" language="cshtml">
@section JSIncludes
{
<script type="text/javascript" src="/js/main_page.js"></script>
}
</umbraco:Macro>
但是当我试图打开一个页面时,我收到“在我的页面顶部加载MacroEngine脚本(文件:)错误”。 有谁知道这个的原因? 如果有人知道如何正确添加这样的东西,那就太好了。 提前谢谢。
答案 0 :(得分:1)
您不需要使用剃刀宏来添加特定于页面的脚本引用,请使用ContentPlaceHolder
母版页:
<head>
<asp:ContentPlaceHolder ID="PageScripts" runat="server" />
<asp:ContentPlaceHolder ID="PageStyles" runat="server" />
内容页面:
<asp:Content ID="PageScript" runat="server" ContentPlaceHolderID="PageScripts">
<script type="text/javascript" src="/js/main_page.js"></script>
</asp:Content>