web-dev-qa-db-fra.com

une page ne peut avoir qu'une seule balise de formulaire côté serveur

J'utilise un gabarit et lorsque j'exécute cette page, le message d'erreur suivant s'affiche:

une page ne peut avoir qu'une seule balise de formulaire côté serveur

Comment puis-je résoudre ce problème?

16
Manoj Wadhwani

Je pense que tu as aimé ça:

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

 </form>
</asp:Content>

La balise de formulaire n'est pas nécessaire. parce que vous avez déjà la même balise dans la page maître. 

Donc, vous supprimez simplement cela et cela devrait fonctionner. 

17
Naveen Desosha

On dirait que vous avez une balise de formulaire dans une page maître et dans la page générant l'erreur.

Vous ne pouvez en avoir qu'un.

9
philhobgen

Votre page contient-elle ces

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

balises, et sont tous vos contrôles à l'intérieur de ceux-ci? Vous ne devriez avoir que les balises Form Dans MasterPage.


Voici quelques unes de mes compréhension et suggestion.

L'élément html peut être placé dans le corps des pages html et la page html le fait. Plusieurs éléments sont supportés, mais ils ne peuvent pas être imbriqués. Autre. Vous pouvez trouver la description détaillée de la spécification HTML W3C.

L'élément FORM

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

Pour ce qui est de la page de formulaire Web ASP.NET, elle est basée sur un élément Formulaire côté serveur unique, qui contient tous les contrôles qu’il contient. Par conséquent, nous ne recommandons généralement pas de placer plusieurs éléments. Cependant, cela est toujours supporté dans la page ASP.NET (page maître) et je pense que le problème de votre page maître Devrait être causé par l’élément imbriqué non pris en charge, et que plusieurs Au même niveau devraient être D'accord. par exemple:

En outre, si ce que vous voulez faire avec plusieurs formulaires consiste simplement à publier notrepage sur plusieurs pages, vous pouvez envisager d'utiliser la nouvelle fonctionnalité Pour la publication sur plusieurs pages dans ASP.NET 2.0. Cela peut nous aider à utiliser les contrôles button Pour publier sur différentes pages sans avoir de formulaires multipiles sur La page:

Publication entre pages dans des pages Web ASP.NET

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

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

4
ahmed

Utilisez uniquement une balise de formulaire côté serveur.

Vérifiez votre page maître pour <form runat="server"> - il devrait y en avoir un seul.

Pourquoi avez-vous besoin de plus d'un?

3
Oded

veuillez supprimer "runat =" server "" de la balise "form", alors cela fonctionnera définitivement.

0

Parfois, lorsque vous rendez le rendu de la page actuelle, comme indiqué ci-dessous, le code générera la même erreur

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

alors comment pouvons-nous le trier?

0
panky sharma