Pregunta

Nuestra página maestra base tiene algo como lo siguiente

  <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>

Si esta página maestra es la página maestra para una página ASPX, las cosas funcionan bien.

Si esta página maestra es la página maestra para una página maestra secundaria y luego una nueva página ASPX usa la página maestra secundaria ya que es MasterPage, vemos:

Error del servidor en la aplicación ''.

La colección Controls no se puede modificar porque el control contiene bloques de código (es decir, <% ...% >).

¿Cuál es la forma preferida de incluir recursos globales (Javascript / CSS) en una página maestra básica que conserva el estilo relativo de tilde (~)?

¿Fue útil?

Solución

Utilice el control del servidor 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>

Otros consejos

¿Has probado:

<script type="text/javascript" src='<%= Page.ResolveClientUrl("~/javascript/actions.js") %>'></script>

Según ScottGu ,

Un consejo para aprovechar es el soporte relativo de reparación de ruta proporcionado por head runat = " server " controlar. Puede usar esto dentro de las páginas maestras para hacer referencia fácilmente a una hoja de estilo .CSS que se reutiliza en todo el proyecto (independientemente de si el proyecto está referenciado a raíz o es una sub-aplicación):

La función de corrección de ruta del control principal tomará la ruta relativa de la hoja de estilo .CSS y generará correctamente la ruta absoluta a la hoja de estilo en tiempo de ejecución, independientemente de si se trata de un sitio web de referencia raíz o parte de un sub- solicitud.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top