2009-08-28 21 views
5

Tengo la página maestra con formulario (runat = "servidor"). Sin embargo, en la página anidada, tengo 2 formularios. Primero es para cambiar la contraseña y el segundo es para enviar datos de usuario ... Ambos deben existir, con botones de envío por separado.Página maestra y formulario anidado número

Intenté encerrar los campos apropiados con las etiquetas de formulario, pero recibí el error de que los formularios adjuntos no están permitidos ... ¿Cómo puedo lograr mi objetivo?

Gracias!

Respuesta

4

ASP.NET admite un único formulario por página (emula los formularios de sesión de escritorio). Probablemente lo que necesita es dejar el formulario en la página maestra y tener 2 manejadores de Click para los botones en la página de contenido. Es posible que también deba especificar ValidationGroup para sus controles y botones para que no interfieran si tiene algunos validadores.

0

Puede tener una sola etiqueta < form> en la página ASPX. Cuando está utilizando la página Maestra, ya tiene una etiqueta < form runat = "server">. No puede usar < form> tag nuevamente en sus páginas anidadas. Lo que puede hacer es agregar su contenido en la página anidada en esta etiqueta. < asp: Content ID = "Content1" ContentPlaceHolderID = "ContentPlaceHolder1" runat = "server"> </asp: Content>

0

Puede tener forma múltiple en una página de formularios web, pero sólo 1 puede tener la runat- "servidor' atributo y el runat = 'forma de servidor' no pueden tener cualquier forma anidadas Una opción que podría funcionar para usted:.

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Untitled</title> 
</head> 
<body> 
    <div id="header> 
     <h1>My Site</h1> 
     <form id="SearchForm" action="search.aspx" method="post"> 
      <!--your search form html inputs (on server controls)--> 
     </form> 
    </div> 

    <!-- the standard webforms form used for server controls etc--> 
    <form id="form1" runat="server"> 

      <asp:ContentPlaceHolder ID="SearchBody" runat="server"> 
      </asp:ContentPlaceHolder> 

    </form> 
</body> 
</html> 

usted también podría buscar en el techinique PostBackUrl:

http://msdn.microsoft.com/en-us/library/ms178140.aspx

0

Simplemente agregue <form runat="server"> al comienzo de su página maestra después de la etiqueta <body> y en su interior ponga su <asp:content></asp:content>.

Ej. MyMasterPage.master página

<% master ... %> 
<html> 
<head> .... </head> 
<body> 
<form runat="server"> 
. 
. 
. 
<div> 
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 

</asp:Content> 
</div> 
. 
. 
. 
</form> 
</body> 
</html> 

Nester Página: MyPage.cs

<% page ... %> 
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    <asp:Button ID="testButton" runat="server" Text="Sample Button" Width="135px" /> 
</asp:Content> 

De esta manera se puede resolver su problema

1

Como ya ha formar en la página maestra, que no será capaz de agregar cualquier formulario en la página anidada, podría haber una sola etiqueta de formulario por página,

en lugar de crear dos formularios diferentes en la página anidada, no se puede crear dos div diferentes, tabla, etc.

qué fuerza tomar en forma en la página anidada

Cuestiones relacionadas