Asp.net

在 VS 2008 嵌套母版頁中包含對 JavaScript 的相對引用的首選方式

  • July 4, 2012

我們的基本 Masterpage 有如下內容

 <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,則一切正常。

如果這個 Masterpage 是子 Masterpage 的 Masterpage,然後一個新的 ASPX 頁面使用子 Masterpage,因為它是 MasterPage,我們看到:

“”應用程序中的伺服器錯誤。

無法修改 Controls 集合,因為該控制項包含程式碼塊(即 <% … %>)。

在基本 Masterpage 中包含全域資源(Javascript/CSS)的首選方法是什麼,保留波浪號(~)樣式的相對路徑?

使用 ScriptManager 伺服器控制項:

 &lt;asp:ScriptManager ID="myScriptManager" runat="server"&gt;
   &lt;Scripts&gt;
     &lt;asp:ScriptReference Path = "~/javascript/actions.js" /&gt; 
     &lt;asp:ScriptReference Path = "~/javascript/jquery/jquery-1.2.6.min.js" /&gt;
   &lt;/Scripts&gt;
 &lt;/asp:ScriptManager&gt;

你有沒有嘗試過:

&lt;script type="text/javascript" src='&lt;%= Page.ResolveClientUrl("~/javascript/actions.js") %&gt;'&gt;&lt;/script&gt;

引用自:https://stackoverflow.com/questions/183859