2009-03-24 9 views

Respuesta

7

Veo cinco (u 8) maneras de hacerlo:

  1. En el código subyacente (.cs o .vb) usando:
    • Scriptmanager.RegisterClientScriptinclude - con ayuda de un absoluto/ruta relativa
    • Scriptmanager.RegisterClientScriptInclude - el uso de un recurso incrustado
    • Scriptmanager.RegisterSlientScriptBlock - con su agria ce en el interior
  2. Agregándolo en línea a la página ASPX en el diseñador
  3. pegándolo en el interior del asp: contenido, donde el contenido vive dentro del cuerpo de la etiqueta.
  4. Pegándolo dentro del asp: contenido donde el contenido vive dentro de la cabeza (Has dicho que no es una opción, así que ignora esto).
  5. Agregándolo mediante programación utilizando ScriptManager dentro de un control que utiliza en la página como se indica anteriormente.

"Sólo los controles de contenido se les permite directamente en una página de contenido que contiene los controles de contenido" - ¿Usted se olvidó el runat = "server"?

1

Exterior. El interior de los ContentPlaceholders se reemplazará con el contenido de sus páginas de todos modos, por lo que no tiene mucho sentido poner nada allí.

1

afuera. en la página maestra

Los marcadores de posición son los controles de envoltura para las páginas que descienden de las páginas maestras.

2

Si se refiere a las etiquetas <asp:Content />, no puede poner nada fuera de ellas en una página .aspx. Entonces, está limitado a ponerlos dentro de la etiqueta <asp:Content />. Si desea las etiquetas <script /> y <link />, debe colocar <asp:ContentPlaceHolder /> en el <head> de su página maestra o agregarlas dinámicamente a través de la colección Controls de la página.

5

Si se trata de scripts y enlaces para todas las páginas, debe salir de cualquier ContentPlaceHolders. Si se trata de secuencias de comandos y enlaces para esta página, debe ir dentro de un contenido dentro del encabezado. Si se trata de scripts predeterminados, colóquelos en un ContentPlaceHolder principal y, si es necesario, puede reemplazarlos por la página secundaria. (VS generalmente se queja de un ContentPlaceHolder en la cabeza, pero funciona bien para mí).

// master Page 
<head runat="server"> 
    <asp:ContentPlaceHolder id="head" runat="server"> 
     <!-- Default scripts and CSS --> 
     <link rel="stylesheet" type="text/css" href="default.css" /> 
     <script type="text/javascript" src="jquery.js"></script> 
    </asp:ContentPlaceHolder> 
    <!-- Mandatory scripts and css --> 
    <link rel="stylesheet" type="text/css" href="all.css" /> 
    <script type="text/javascript" src="all.js"></script> 
</head> 
<body> 
    Master Page! 
    <asp:ContentPlaceHolder id="body" runat="server" /> 
</body> 

// Child (no JQuery) 
<asp:Content ContentPlaceHolderID="head" runat="server"> 
    <link rel="stylesheet" type="text/css" href="default.css" /> 
    <!-- Don't need JQuery --> 
    <script type="text/javascript" src="prototype.js"></script> 
</asp:Content> 
<asp:Content ContentPlaceHolderID="body" runat="server"> 
    Child Page! 
</asp:Content> 

// Child 2 (with JQuery) 
<asp:Content ContentPlaceHolderID="body" runat="server"> 
    Child Page! 
</asp:Content> 
+0

Parece que funciona a pesar de que se queja y lo tengo fuera, pero ¿qué ocurre si no tengo un marcador de posición principal? – Xaisoft

+0

Agregar uno. ;) Por lo general, termino con al menos 3 marcadores de posición: 1 cabecera para guiones y estilos predeterminados, 1 cabezal para agregar guiones y estilos, y 1 contenido. –

1

Usar asp.net scriptreference tag en la página maestra para agregar referencia al archivo javascript y podrá acceder a todo lo que necesite en el archivo javascript como si se hubiera agregado a la página local.

Cuestiones relacionadas