Asp.net
在 VS 2008 嵌套母版頁中包含對 JavaScript 的相對引用的首選方式
我們的基本 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 伺服器控制項:
<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>
你有沒有嘗試過:
<script type="text/javascript" src='<%= Page.ResolveClientUrl("~/javascript/actions.js") %>'></script>