2009-09-10 8 views
0

1ページに2つのhtmlフォームが必要です。 1つはログインの詳細用、もう1つはフィードバック用です。どちらの形式もrunat="server"のattribを持つことはできません。asp.netページ上に複数のサーバーサイドフォーム

提案がありますか?

+1

[ASP.NETでのフォームベースプログラミング](http://msdn.microsoft.com/en-us/magazine/cc164151.aspx)の記事が役に立ちます。 –

答えて

1

Webフォームを使用している場合、あなたは今までページ上の一つの形を持っている必要があります。たぶんうんざりですが、それはウェブフォームの世界です...

全ページ一周を一周します。次に、ボタンをクリックすると(または使用しているイベントがあれば)、ページ上のすべてのコントロールの値にアクセスできるはずです。

1

はい、あなたが言ったように、ASP.NETではフォーム要素を複数持つことはできません。同じフォームで複数のアクションを処理できます。フォームのアクション属性を使用しないでください。< asp:Button >のようなasp.netサーバーコントロールを使用して、返信するコントロールのイベントにロジックを書き込みます。

4

フォームの1つを通常のHTMLフォームとして処理します。runat = "server"は使用しないでください。 Request.Formコレクションから任意のポストから値を手動で抽出します(フォームに対応するサーバー側の変数は存在しないため)。

また、すべての要素を同じフォームに配置しますが、別のコントロールを使用して送信してください。コントロールの各セット(およびその送信ボタン)は、あなたが気にしていない要素のために検証エラーが発生しないように、別の検証グループに含まれている必要があります。送信ボタンのコールバックでフォーム処理を処理します。

また、私は最終的にASP.NET MVCに移行することをお勧めします。 MVCはWebの視点からはるかに優れたアーキテクチャです。これは、ステートレスWebモデルとより密接に整合し、WinForms開発を模倣するのに役立つASP.NETに課された制限はありません。

1

ASP.NETページフレームワークアーキテクチャでは、フォームrunat="server"という属性が1つしかありません。あなたはこのことを心配する必要はありません。コントロールを2つの異なる目的のためにWebフォームに配置し、2つのasp.netサーバーコントロールのクリックイベントを個別に処理します。

1

論理的に1つのフォーム内で分割するだけです。バリデーターを使用し、2つの "フォーム"に他の値を入力する必要がないようにするには、ValidationGroupという.NETコントロールのプロパティーが必要です。

関連する問題