2010-06-14 15 views
7

Soy un desarrollador de PHP que tiene que trabajar en proyectos de ASP.net y me pregunto por qué cada página está envuelta en un formulario. Esto simplemente no tiene sentido para mí.¿Por qué asp.net ajusta la página en un formulario?

También, ¿qué pasa con todos los campos de entrada ocultos, especialmente el estado "Ver estado".

+2

debe ser específico que se trata de formularios web asp.net, no de ASP.NET MVC que se parece más al entorno PHP al que está acostumbrado – MikeJ

Respuesta

11

ASP.Net intenta que los programadores puedan pretender que la web es una plataforma con estado y que se comporta como una aplicación de escritorio. El ViewState es básicamente un bloque serializado del estado de la página cuando se generó. Cuando la página se vuelve a publicar, el modelo del lado del servidor se inicializa a los valores en ViewState, y luego se aplican los nuevos valores del formulario publicado.

Parte de convertirse en un programador decente de ASP.Net es aprender cuándo usar ViewState y no, porque el valor predeterminado es usarlo en todas partes, lo que causa una gran cantidad de problemas en la página descargada.

2

Motor ASP.NET WebForms crea una abstracción con estado sobre HTTP sin estado.

El objeto clave es una página del servidor. Controla los eventos de incendios que se procesan en el lado del servidor. Los controles mantienen sus estados (generalmente, valores de entrada) entre las solicitudes.

Cada vez que haga clic en un control de servidor, se enviará una solicitud de "devolución de datos" al servidor. ViewState en realidad contiene los datos que le dicen al servidor qué control activó el evento. Es por eso que siempre hay un formulario (y no se permiten más formularios).

3

Todo en ASP.NET (páginas aspx) funciona a partir de la publicación de datos.

Esto significa que todo lo que coloque en la página web con una acción del lado del servidor provocará una "publicación posterior" a sí misma. La publicación posterior contiene información tal como "lo que acaba de ocurrir" y cierta información que ayuda a la página web a mantener el estado (que las páginas web tradicionalmente no lo hacen). El estado de vista es parte de esa tarea de mantener el estado.

Si no le gusta la forma en que las páginas aspx intentan convertir páginas web en aplicaciones con estilo de formularios, puede probar el marco ASP.NET MVC, que permite que la web funcione como se esperaba.

5

Cada página ASP.NET está envuelta en un elemento <form> porque toda la estructura gira en torno a los comandos POST.

ASP.NET proporciona 'controles web' que son abstracciones orientadas a objetos de elementos HTML (y en algunos casos, grupos de elementos) - en su código del lado del servidor puede adjuntar comandos a diversos eventos en controles web (para ejemplo, Button.OnClick, TextBox.OnChanged): el marco los conecta usando una combinación de campos ocultos y javascript generado. El javascript generado generalmente establece un campo oculto de pocos valores para indicar (por ejemplo) qué control desencadenó la publicación y los argumentos del comando (si corresponde), luego envía el formulario.

ViewState es una técnica utilizada por el marco para serializar el estado del cliente. Es una alternativa al uso intensivo de la sesión, intercambiando cargas útiles HTML más grandes para una menor huella de memoria en el servidor.

Cuestiones relacionadas