これまでのところ、出会ったすべてのWebページには、最大1つの<form>
タグが含まれています。なぜ複数のものではないのですか?同じWebページ内に複数のフォームが共存できない理由は考えられません。
また、ASP.NETに固有であるために、すべてのサーバーコントロールが<form>
タグ内に配置されているのはなぜですか?他の場所に置いてみませんか?
プラス、
.aspx
ファイルでは、<form>
タグにはrunat = server属性がありますが、通常のサーバーはButton
にも1つあります。したがって、<form>
もサーバーコントロールのようです。しかし、奇妙なことに、Visual Studio Toolboxで見つけることができません。
追加の質問について:<form runat="server">
は、バックグラウンドでHtmlForm
クラスとして解析され、HtmlControl
を継承する他のHTML要素と同様に、runat="server"
。
ただし、他のHtmlControlとは異なり、ページごとに1つのインスタンスしか存在できず、作成するすべての新しいフォームに自動的に追加されるため、ツールボックスには表示されないため、まったく意味がありません。
はい、できます-カスタムHtmlFormオブジェクトを作成し、必要に応じてフォームを切り替えます。私はここで同様の質問に答えました(コード付き):
多くの非サーバーフォーム-可能ですが、1つのrunAtサーバーフォームのみ
私もこれを見つけました:
サーバー側のフォームタグは、runat = "server"属性を持つタグです。この属性が欠落している場合、それは典型的なHTMLフォームタグです。結論は、runat = "server"属性を持つのが1つだけである限り、1つのページで複数のフォームタグを使用できることです。この属性を持たないフォームの欠点は、view stateが機能しないことです(ブラウザの戻る/進むボタンを使用するとフォームの値が消えることを意味します)。 1ページに複数のフォームが本当に必要な場合は、少額の費用がかかります。