Bloques de declaraciones de código
[Esta documentación se proporciona solo para fines preliminares y está sujeta a cambios en versiones posteriores. Se incluye temas en blanco como marcadores].
Los bloques de declaraciones de código definen secciones de código de servidor incrustadas en archivos de aplicación ASP.NET dentro de bloques de <script> marcados con un atributo runat="server".
<script runat="server" language="codelanguage" Src="pathname">
Code goes here.
</script>
Atributos
language
Especifica el lenguaje utilizado en el bloque de declaraciones de código. Este valor puede representar cualquier lenguaje compatible con .NET Framework, como Visual Basic (VB), C# o JScript .NET. Si no se especifica ningún lenguaje, se adopta como valor predeterminado el lenguaje especificado en la directiva @ Page o @ Control. Si no se especifica ningún lenguaje en la directiva, el valor predeterminado será VB a menos que se haya cambiado el valor predeterminado en el archivo Web.config de la aplicación.Nota
Sólo se puede utilizar un lenguaje para un control de usuario o página ASP.NET.Si se especifica el lenguaje en varias ubicaciones (lo cual no es necesario), como la etiqueta de apertura de un bloque de declaraciones de código y la directiva @ Page o @ Control, los lenguajes deben coincidir.
runat
Cuando su valor es runat="server", este atributo especifica que el código incluido en el bloque script se ejecuta en el servidor y no en el cliente. Este atributo es necesario para los bloques de código de servidor.src
Especifica la ruta de acceso y el nombre de un archivo de script externo que se va a cargar. Al utilizar este atributo, se pasa por alto el código restante del bloque de declaración.
Comentarios
Los bloques de declaraciones de código se definen utilizando etiquetas <script> con el valor del atributo runat establecido en server. El elemento <script> puede utilizar de manera opcional un atributo language para especificar el lenguaje de su código interno. Si no se especifica ningún lenguaje, ASP.NET adopta como valor predeterminado el lenguaje configurado para el control de usuario o página base (que se controla mediante las directivas @ Page y @ Control). Estos bloques de código de servidor pueden declararse en varios archivos de aplicación ASP.NET, incluidos controles de usuario, páginas Web, páginas maestras y archivos Global.asax. Cuando se compila un archivo de aplicación ASP.NET dado, el bloque de código incrustado se compila con el objeto asociado al tipo de archivo ASP.NET dado. Por ejemplo, cuando se compila una página, se compilan los bloques de declaraciones de código incrustados junto con la clase Page en un solo objeto de página del servidor.
También se puede utilizar el elemento <script> para especificar un archivo de script externo mediante el atributo src. Cuando se define el atributo src, se omite todo el contenido incluido entre las etiquetas de apertura y cierre del elemento <script>. En este caso, utilice una barra diagonal de cierre (/) al final de la etiqueta de apertura. Por ejemplo: <script runat="server" src="myFile.cs" />.
Ejemplo
En el siguiente ejemplo de código se muestra cómo definir la lógica de control de eventos para el evento EnterBtn_Click.
Nota sobre la seguridad |
---|
En este ejemplo hay un cuadro de texto que acepta datos del usuario, lo que puede suponer una amenaza para la seguridad.De forma predeterminada, las ASP.NET Web Pages validan los datos escritos por el usuario para comprobar que no incluyen script ni elementos HTML.Para obtener más información, vea Script Exploits Overview. |
<html>
<script language="C#" runat="server">
void EnterBtn_Click(Object Src, EventArgs E) {
Message.Text = "Hi " + Name.Text + ", welcome to ASP.NET!";
}
</script>
<body>
<form runat="server">
Enter your name: <asp:textbox id="Name" runat=server/>
<asp:button text="Enter" Onclick="EnterBtn_Click" runat="server"/>
<p>
<asp:label id="Message" runat=server/>
</form>
</body>
</html>
<html>
<script language="VB" runat="server">
Sub EnterBtn_Click(Src As Object, e As EventArgs)
Message.Text = "Hi " & Name.Text & ", welcome to ASP.NET!"
End Sub
</script>
<body>
<form runat="server">
Enter your name: <asp:textbox id="Name" runat=server/>
<asp:button text="Enter" Onclick="EnterBtn_Click"
runat="server"/>
<p>
<asp:label id="Message" runat=server/>
</form>
</body>
</html>