Pregunta

Cuando se codifica una página de Asp.Net, por lo general, agrega un atributo runat en el aspx:

<form id="form1" runat="server">

¿Es posible decir en el código detrás de si el usuario no ha hecho esto decir que sólo hicieron esto:

<form id="form1">

A continuación, la forma tiene las "Form1" id pero en mi caso no sé esto. Código detrás, como esto es lo que estoy buscando:

if(Page.HasForm)
{
}
¿Fue útil?

Solución

Puede sólo tenga una etiqueta de formulario con "runat = server" en él por página .aspx. Todo lo que tiene que hacer es comprobar para ver si Page.Form es nulo o no. Si es nulo, entonces no hay forma de que se haya marcado para RUNAT servidor.

if (Page.Form != null)
{

}

Es la runat = parte "servidor" que hace que el proceso página .aspx un elemento y crear un objeto correspondiente en el lado servidor. Si un componente no se ejecuta en el servidor, a continuación, no se añade a la jerarquía de control de la página.

Otros consejos

var v = this.Form.TagName; // obtiene el nombre del formulario que se maked como runat.

Por supuesto, si no es Maqued como runat entonces su código detrás no se ejecutará de todos modos ...

Cuando el código en C # o Visual Basic en la página de códigos, no tendrá acceso al objeto de que no tienen el runat = conjunto de opciones del servidor.

Puede acceder fácilmente a todos los controles de una página utilizando la página Me.Controls o algo por el estilo (no sé el código exacto, pero está cerca de esto) y comprobar el tipo del control para obtener el formulario .

¿Por qué necesita saber que? Si una página no tiene una forma runat = server, que en realidad no puede ser utilizada como una página del servidor.

Usted sería capaz de acceder al formulario desde el código subyacente:

Response.Write(form1.Name);

Sin el runat = "server", usted acaba de conseguir un error de compilación.

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