マスターページを使用していますが、このページを実行すると、次のエラーメッセージが表示されます。
ページに含めることができるサーバー側フォームタグは1つだけです
この問題を解決するにはどうすればよいですか?
私はあなたがこのようにしたと思います:
<asp:Content ID="Content2" ContentPlaceHolderID="MasterContent" runat="server">
<form id="form1" runat="server">
</form>
</asp:Content>
Formタグは必要ありません。マスターページに既に同じタグがあるためです。
したがって、それを削除するだけで機能するはずです。
マスターページとエラーをスローしているページにフォームタグがあるようです。
1つしか持てません。
ページにこれらが含まれていますか
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
</asp:content>
タグ、およびこれらの内部にすべてのコントロールがありますか? MasterPageにはFormタグのみが必要です。
私の理解と提案の一部を以下に示します。
Html要素はhtmlページの本文に配置でき、htmlページは複数の要素をサポートしますが、互いにネストすることはできません。W3Chtml仕様から詳細な説明を見つけることができます。
http://www.w3.org/MarkUp/html3/forms.html
また、ASP.NET Webフォームページについては、すべてのコントロールを含む単一のサーバー側フォーム要素に基づいているため、一般に複数の要素を配置することはお勧めしません。ただし、これはASP.NETページ(マスターページ)で引き続きサポートされており、マスターページの問題はサポートされていないネストされた要素が原因であり、同じレベルの複数の要素は問題ないはずです。例えば:
また、複数のフォームを使用してページを複数のページに投稿するだけの場合は、ASP.NET 2.0のページ間投稿に新しい機能を使用することを検討できると思います。これにより、ボタンコントロールを使用して、ページに複数のフォームを持たずに別のページにポストバックできます。
1つのサーバー側フォームタグのみを使用します。
マスターページで<form runat="server">
-1つだけにする必要があります。
なぜ複数必要なのですか?
"form"タグから "runat =" server ""を削除すると、確実に機能します。
以下のコードに示すように、現在のページをレンダリングすると、同じエラーが生成される場合があります
StringWriter str_wrt = new StringWriter();
HtmlTextWriter html_wrt = new HtmlTextWriter(str_wrt);
Page.RenderControl(html_wrt);
String HTML = str_wrt.ToString();
それで、どうやってそれをソートできますか?