2010-05-26 37 views
17

estoy usando la página principal y cuando corro esta página, se muestra el siguiente mensaje de error:una página puede tener un solo lado del servidor forma la etiqueta

una página sólo puede tener etiqueta de formulario de un solo lado del servidor

¿Cómo puedo resolver este problema?

+2

Es una parte intrínseca de los formularios web ASP.NET que solo se puede usar una etiqueta de formulario del lado del servidor en una página procesada. Puede tener otras formas, simplemente no pueden tener el atributo 'runat =" server "' en ellas, IIRC. –

+1

Eliminar completamente las etiquetas de la página maestra – ahmed

+0

@RussCam ¿El patrón correcto es *** etiqueta de formulario *** en _Master_ o en _Nested contentPage_? – Kiquenet

Respuesta

3

Utilice solo una etiqueta de formulario del lado del servidor.

Revise su página maestra para <form runat="server"> - debería haber solo una.

¿Por qué necesita más de uno?

+0

esta página solo contiene contantplace holder creé nueva página y ejecuté esta página después de eso este show error. –

+0

@Manoj Wadhwani - Asegúrese de que ambas páginas tengan solo una etiqueta de formulario del lado del servidor. – Oded

9

Parece que tiene una etiqueta de formulario en una página maestra y en la página que arroja el error.

Puede tener solo una.

4

¿Su página contienen estos

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" 
Runat="Server"> 
</asp:content> 

etiquetas, y son todos sus controles dentro de estos? Solo debe tener las etiquetas de Formulario en la página maestra.


Éstos son algunos de mi comprensión y sugerencia:

elemento HTML se pueden poner en el cuerpo de páginas HTML y en la página HTML no apoyo de múltiples elementos, sin embargo, no puede estar anidada cada otra , se puede encontrar la descripción detallada de la W3C hTML especificación:

el elemento FORM

http://www.w3.org/MarkUp/html3/forms.html

Y en cuanto a la página de formulario Web ASP.NET, que se basa en un elemento de formulario de servidor único, que contiene todos los controles en su interior, por lo general, no nos recomendamos que ponemos múltiples elementos. Sin embargo, esto sigue siendo compatible en la página ASP.NET (página maestra) y creo que el problema en su página maestra debe ser causado por el elemento anidado no compatible, y múltiple en el mismo nivel debe estar bien. por ejemplo:

Además, si lo que quiere hacer a través de múltiples formas se acaba de hacer nuestra página anuncio a varias páginas, creo que se puede considerar el uso de la nueva característica de entre páginas publicación en ASP.NET 2.0. Esto puede ayudarnos a usar los controles del botón para realizar una devolución de datos a diferentes páginas sin tener formularios de pila múltiple en la página:

Publicación cruzada de páginas en ASP.Páginas Web NET

http://msdn2.microsoft.com/en-us/lib...39(VS.80).aspx

http://msdn2.microsoft.com/en-us/lib...40(VS.80).aspx

+2

Tus enlaces están rotos. – Four

15

creo que lo hizo así:

<asp:Content ID="Content2" ContentPlaceHolderID="MasterContent" runat="server"> 
    <form id="form1" runat="server"> 

</form> 
</asp:Content> 

La etiqueta de formulario no es necesario. porque ya tienes la misma etiqueta en la página maestra.

Así que solo quítalo y debería estar funcionando.

+0

su página maestra ya tiene un formulario. los formularios anidados no están permitidos –

+0

¿El patrón correcto es *** etiqueta de formulario *** en _Master_ o en _Nested contentPage_? – Kiquenet

0

En algún momento cuando se renderiza la página actual como se muestra en la siguiente código generará el mismo error

StringWriter str_wrt = new StringWriter(); 
HtmlTextWriter html_wrt = new HtmlTextWriter(str_wrt); 
Page.RenderControl(html_wrt); 
String HTML = str_wrt.ToString(); 

¿cómo podemos solucionar el problema?

+0

este es mi problema exacto ¿Encontraste algo para arreglar esto? – asdasdad

+0

Este es el problema aquí también. – CodeIt

0

Su Masterpage probablemente también tenga una etiqueta de Formulario.

Si desea hacer varias etiquetas de formulario, elimine el atributo runat = "server" y use etiquetas de entrada HTML simples en su lugar.

+0

Un buen patrón es *** etiqueta *** en _Master_ o en _Nested contentPage_? – Kiquenet

Cuestiones relacionadas