Compartir a través de


Información general sobre sintaxis de páginas web ASP.NET

Actualización: noviembre 2007

Aunque las páginas Web ASP.NET se crean de forma similar a las páginas Web HTML estáticas (páginas que no contienen procesamiento basado en servidor), incluyen elementos adicionales que ASP.NET reconoce y procesa cuando se ejecuta la página. Las características que distinguen las páginas Web ASP.NET de las páginas HTML estáticas (u otras) son las siguientes:

  • La extensión de nombre de archivo .aspx en lugar de .htm, .html u otras extensiones. La extensión de nombre de archivo .aspx hace que ASP.NET procese la página.

    Nota:

    La asignación de extensiones de nombre de archivo a ASP.NET se realiza en Internet Information Services (IIS). De forma predeterminada, ASP.NET ejecuta las páginas .aspx, no las páginas .htm y .html.

  • Una directiva @ Page u otra directiva opcional, según convenga para el tipo de página que se está creando.

  • Un elemento form que está configurado correctamente para ASP.NET. El elemento form sólo es necesario si la página contiene controles cuyos valores se deben utilizar durante el procesamiento de páginas.

  • Controles de servidor Web.

  • Código del servidor si agrega su propio código a la página.

    Nota:

    Si desea que las páginas cumplan los estándares XHTML, deberá incluir elementos adicionales, como el elemento DOCTYPE. Para obtener información detallada, vea ASP.NET y XHTML.

En las secciones siguientes se ofrece más información sobre cada uno de estos elementos.

Si lo desea, puede cambiar el nombre de las páginas HTML y asignarles la extensión de nombre de archivo .aspx para que se ejecuten como páginas Web ASP.NET. No obstante, si la página no requiere procesamiento en el servidor, no es necesario que tenga la extensión .aspx, ya que al hacerlo se sobrecarga el procesamiento de la página.

Página Web ASP.NET de ejemplo

En el ejemplo de código siguiente se muestra una página que incluye los elementos básicos que forman una página Web ASP.NET. La página contiene el texto estático que podría incluirse en una página HTML, junto con elementos específicos de ASP.NET. Dichos elementos aparecen resaltados.

Nota:

Para mayor claridad, esta página de ejemplo no está configurada para la compatibilidad con XHTML. Para obtener información detallada, vea ASP.NET y XHTML.

Nota de seguridad:

En esta página de ejemplo hay un cuadro de texto que acepta datos del usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, las páginas Web ASP.NET validan los datos escritos por el usuario para comprobar que no incluyen scripts ni elementos HTML. Para obtener más información, vea Información general sobre los ataques mediante secuencias de comandos.

<%@ Page Language="VB" %>
<html>
<script >    Sub Button1_Click(ByVal sender As Object, _        ByVal e As System.EventArgs)        Label1.Text = "Welcome, " & TextBox1.Text    End Sub</script>
<head >
  <title>Basic ASP.NET Web Page</title>
</head>
<body>
  <form id="form1" >
    <h1>Welcome to ASP.NET</h1>
    <p>Type your name and click the button.</p>
    <p>
      <asp:TextBox ID="TextBox1" ></asp:TextBox><asp:Button ID="Button1"  Text="Click" OnClick="Button1_Click" />
    </p>
    <p>
      <asp:Label ID="Label1" ></asp:Label>
    </p>
  </form>
</body>
</html>
<%@ Page Language="C#" %>
<html>
<script >Void Button1_Click(object sender, System.EventArgs e) {    Label1.Text = ("Welcome, " + TextBox1.Text);}</script>
<head >
  <title>Basic ASP.NET Web Page</title>
</head>
<body>
  <form id="form1" >
    <h1>Welcome to ASP.NET</h1>
    <p>Type your name and click the button.</p>
    <p>
      <asp:TextBox ID="TextBox1" ></asp:TextBox>      <asp:Button ID="Button1"          Text="Click" OnClick="Button1_Click" />
    </p>
    <p>
      <asp:Label ID="Label1" ></asp:Label>
    </p>
  </form>
</body>
</html>

Directivas @

Normalmente las páginas ASP.NET contienen directivas que permiten especificar las propiedades de la página y la información de configuración para ésta. ASP.NET utiliza las directivas como instrucciones sobre el modo en que se debe procesar la página, pero no se representan como parte del formato que se envía al explorador.

La directiva que se utiliza normalmente es @ Page, que permite especificar muchas opciones de configuración para la página, entre las que se encuentran las siguientes:

  • Lenguaje de programación del servidor para el código de la página.

  • Si se trata de una página en la que se ha incluido directamente el código del servidor, denominada página de un solo archivo, o si se trata de una página en la que el código se ha incluido en un archivo de clase independiente, denominada página de código subyacente. La página del ejemplo anterior es de un solo archivo; el código está directamente en la página y la directiva @ Page no incluye información sobre archivos de clase vinculados. Para obtener más información, vea la sección "Código del servidor" en este mismo tema y Modelo de código de las páginas web ASP.NET.

  • Opciones de depuración y seguimiento.

  • Si la página tiene una página maestra asociada y, por consiguiente, debe tratarse como una página de contenido.

Si no se incluye ninguna directiva @ Page en la página o si la directiva no incluye una configuración específica, la configuración se hereda del archivo de configuración de la aplicación Web (archivo Web.config) o del archivo de configuración del sitio (archivo Machine.config).

Además de incluir la directiva @ Page, también se pueden incluir otras directivas que admiten opciones adicionales específicas de la página. Entre otras directivas comunes se encuentran las siguientes:

  • @ Import   Esta directiva permite especificar los espacios de nombres a los que se desea hacer referencia en el código.

  • @ OutputCache   Esta directiva permite especificar que la página se debe almacenar en la memoria caché, junto con los parámetros que indican cuándo y cuánto tiempo debe permanecer almacenada.

  • @ Implements   Esta directiva permite especificar que la página debe implementar una interfaz .NET.

  • @ Register   Esta directiva permite registrar controles adicionales para su uso en la página. La directiva @ Register declara el prefijo de la etiqueta del control y la ubicación de su ensamblado. Si desea agregar controles de usuario o controles ASP.NET personalizados a una página debe utilizar esta directiva.

Algunos tipos de archivos ASP.NET utilizan otras directivas distintas de @ Page. Por ejemplo, las páginas maestras ASP.NET utilizan la directiva @ Master y los controles de usuario ASP.NET utilizan la directiva @ Control. Cada directiva permite especificar opciones distintas adecuadas para el archivo.

Para obtener información detallada, vea Información general sobre las páginas principales ASP.NET y Controles de usuario ASP.NET.

Elementos de formulario

Si la página incluye controles que permiten a los usuarios interactuar con la página y enviarla, ésta debe incluir un elemento form. Aunque se utiliza el elemento form de HTML estándar, se deben cumplir ciertas reglas. Las reglas para utilizar el elemento form son las siguientes:

  • La página sólo puede contener un elemento form.

  • El elemento form debe contener el atributo runat establecido con el valor server. Este atributo permite hacer referencia al formulario y los controles de la página mediante programación en código del servidor.

  • Los controles de servidor que pueden realizar devolución de datos deben estar dentro del elemento form.

  • La etiqueta de apertura no debe contener ningún atributo action. ASP.NET establece estos atributos dinámicamente cuando se procesa la página y reemplaza cualquier configuración que se pueda establecer.

Controles de servidor Web

En la mayoría de las páginas ASP.NET deberá agregar controles que permitan al usuario interactuar con la página, como botones, cuadros de texto, listas, etc. Estos controles de servidor Web son similares a los botones y los elementos input de HTML. Sin embargo, éstos se procesan en el servidor, lo que permite utilizar el código del servidor para establecer sus propiedades. Estos controles también provocan eventos que se pueden controlar en el código del servidor.

Los controles de servidor utilizan una sintaxis especial que ASP.NET reconoce cuando se ejecuta la página. En el ejemplo de código siguiente se muestran algunos de los controles de servidor Web que se emplean típicamente.

Nota de seguridad:

TextBox acepta los datos proporcionados por el usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, las páginas Web ASP.NET validan los datos escritos por el usuario para comprobar que no incluyen scripts ni elementos HTML. Para obtener más información, vea Información general sobre los ataques mediante secuencias de comandos.

<asp:TextBox ID="TextBox1" ></asp:TextBox>
<asp:Button ID="Button1"  
    Text="Click" OnClick="Button1_Click" />
<asp:TextBox ID="TextBox1" ></asp:TextBox>
<asp:Button ID="Button1"  
    Text="Click" OnClick="Button1_Click" />

El nombre de la etiqueta de los controles de servidor ASP.NET comienza con un prefijo, en este caso, asp:. El prefijo podría ser diferente si el control no forma parte de .NET Framework. Los controles de servidor ASP.NET también incluyen el atributo y, opcionalmente, un identificador cuyo uso permite hacer referencia al control en el código del servidor.

Cuando se ejecuta la página, ésta identifica los controles de servidor y ejecuta el código que está asociado a dichos controles. Muchos controles representan código HTML u otro formato en la página. Por ejemplo, el control asp:textbox representa un elemento input con el atributo type="text" en una página. Sin embargo, no hay necesariamente una asignación uno a uno entre un control de servidor Web y un elemento HTML. Por ejemplo, el control asp:calendar representa una tabla HTML. Algunos controles no representan nada en el explorador; en lugar de ello, sólo se procesan en el servidor y proporcionan información a otros controles.

Elementos HTML como controles de servidor

En lugar, o además, de utilizar controles de servidor ASP.NET, puede utilizar elementos HTML ordinarios como controles de servidor. Puede agregar el atributo y un atributo ID a cualquier elemento HTML de la página. Cuando se ejecuta la página, ASP.NET identifica el elemento como control de servidor y lo pone a disposición del código del servidor. Por ejemplo, puede agregar los elementos necesarios a un elemento body de HTML, tal como se muestra en el ejemplo de código siguiente.

<body  id="body">

A continuación puede hacer referencia al elemento body en el código del servidor; por ejemplo, para establecer el color de fondo del elemento body en tiempo de ejecución en respuesta a los datos proporcionados por el usuario o la información proveniente de una base de datos.

Para obtener más información, vea Información general sobre los controles de servidor Web ASP.NET.

Código del servidor

La mayoría de las páginas ASP.NET incluyen código que se ejecuta en el servidor cuando se procesa la página. ASP.NET admite un gran número de lenguajes, entre los que se encuentran C#, Visual Basic, J#, Jscript y otros.

ASP.NET admite dos modelos a la hora de escribir el código del servidor para una página Web. En el modelo de un solo archivo, el código de la página se encuentra en un elemento script cuya etiqueta de apertura incluye el atributo . En el ejemplo anterior de este tema se muestra el modelo de un solo archivo.

Opcionalmente, puede crear el código para la página en un archivo de clase independiente al que se hace referencia como modelo de código subyacente. En este caso, la página Web ASP.NET generalmente no contiene código del servidor. En su lugar, la directiva @ Page incluye información que vincula la página .aspx con su archivo de código subyacente asociado. En el ejemplo de código siguiente se muestra una directiva @ Page típica para una página con un archivo de código subyacente.

<%@ Page Language="VB" CodeFile="Default.aspx.vb" Inherits="Default" %>
<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="Default" %>

El atributo CodeFile especifica el nombre del archivo de clase independiente y el atributo Inherits especifica el nombre de la clase del archivo de código subyacente que corresponde a la página.

Para obtener más información, vea Modelo de código de las páginas web ASP.NET.

Nota:

Las páginas Web ASP.NET también pueden incluir scripts de cliente que se ejecutan en el explorador como respuesta a los eventos del cliente. Una página ASP.NET puede incluir scripts de cliente y código del servidor. Para obtener información detallada, vea Script de cliente en páginas web ASP.NET.

Vea también

Conceptos

Información general sobre páginas Web ASP.NET

Introducción a páginas Web de ASP.NET

Información general sobre expresiones ASP.NET

Otros recursos

Sintaxis de los archivos de configuración de ASP.NET

Programar páginas Web ASP.NET