Una página solo puede tener una etiqueta de formulario del lado del servidor

He leído los otros resultados, pero nada específico de mi problema.

Me doy cuenta de que tener dos etiquetas de formulario con runat = "server" no funciona. Mi problema es que necesito un formulario en el archivo de la página maestra para manejar los menús y demás, y la página 'secundaria' de mi aplicación también requiere una etiqueta de formulario para manejar sus operaciones.

Intenté eliminar la etiqueta de formulario en mis páginas "secundarias", pero el código subyacente no ve que estoy usando la etiqueta de formulario en la página maestra. Debido a esto, la compilación falla ("El nombre 'form1' no existe en el contexto actual")

¿Cómo puedo lograr el objetivo de mantener funcionando mis menús en la Página Maestra, mientras que evito que mis páginas 'secundarias' se equivoquen al compilar?

preguntado el 16 de mayo de 11 a las 20:05

¿Puedes publicar el form ¿código? -

1 Respuestas

Si sigue la ruta de eliminar todas las etiquetas de formulario de todas las páginas secundarias (lo que sugeriría), puede agregar una referencia a la etiqueta Formulario de la página maestra como una propiedad a la que pueden acceder las páginas secundarias. Aquí estaría el código de la página maestra detrás:

public HtmlForm form1 {
    get { return this.form1; }
}

Entonces podría hacer referencia desde la página secundaria:

public void MyMethod() {
    HtmlForm theForm = ((MyMasterPageType)this.Master).form1;
    theForm.Controls.Add(...);
}

Y si configura MasterPageType en las páginas secundarias, puede hacer referencia al directorio con this.Master.form1 (agregue esto a la página de marcado de la página secundaria):

<%@ MasterType TypeName="MyMasterPageType" %>

contestado el 17 de mayo de 11 a las 00:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.