问题描述
我们的基础 Masterpage 有如下内容
Our base Masterpage has something like the following
<head runat="server"> <title></title> <script type="text/javascript" src="<%= Page.ResolveClientURL("~/javascript/actions.js")%>"></script> <script type="text/javascript" src="<%= Page.ResolveClientURL("~/javascript/jquery/jquery-1.2.6.min.js")%>"></script> <asp:contentplaceholder id="cph_htmlhead" runat="server"> </asp:contentplaceholder> </head>
如果此 Masterpage 是 ASPX 页面的 Masterpage,则一切正常.
If this Masterpage is the Masterpage for an ASPX page things work fine.
如果此母版页是子母版页的母版页,然后新的 ASPX 页面使用子母版页,就像我们看到的母版页一样:
If this Masterpage is the Masterpage for a child Masterpage and then a new ASPX page uses the child Masterpage as it's MasterPage we see:
应用程序"中的服务器错误.
Server Error in '' Application.
无法修改 Controls 集合,因为该控件包含代码块(即 <% ... %>).
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
在保留波浪号 (~) 样式相对路径的基本 Masterpage 中包含全局资源 (Javascript/CSS) 的首选方法是什么?
推荐答案
使用 ScriptManager 服务器控件:
Use the ScriptManager server control:
<asp:ScriptManager ID="myScriptManager" runat="server"> <Scripts> <asp:ScriptReference Path = "~/javascript/actions.js" /> <asp:ScriptReference Path = "~/javascript/jquery/jquery-1.2.6.min.js" /> </Scripts> </asp:ScriptManager>