2011-02-14 26 views
2

私は以下の問題を抱えています - Webページのすべてのコンテンツページに継承されたASPメニューコントロールを持つマスターページがあります。1つの.aspxページに2つのフォームタグ

私はrunat = "server"のフォームを(ほぼ)すべてのコンテンツページに入れているので、私はrunat = "server"という2つのフォームタグを持つことができないというコンパイルエラーが発生します。(メニューコントロールを別のフォームタグ)。

どうすればよいですか?私はこれをC#/ ASP.NETの大学コースのコースプロジェクトとしてやっています。そして、asignmentではマスターページを使用しなければならないと言われています。サイトナビゲーションにaspナビゲーションコントロールを使用する必要があります。メニューにクリアHTMLを使用するか、マスターページをドロップしてください。

+1

この質問のタグから 'asp.net-mvc'を削除するか、フォームから 'runat = "server"'を削除してください:) – LukLed

答えて

3

最初の最も簡単なオプションは、実際のページからフォームを削除し、すべてのフォームに1つのフォームを使用することです。 ASP.NET Webフォームはそのように機能するように設計されています。それは大学のプロジェクトなので、これはうまくいくでしょう。

より良い方法は、クライアント側(runat = "server"フォームなし)を使用することです。 Request.Formオブジェクトを使用して値を読み取ることで、一種の「PHPファッション」で手動で投稿を処理できます。これは、ASP.NETメニューコントロールを使用する必要がある場合は機能しません。基本的には、このアプローチを要件に基づいて使用することはできません。

P.S.なぜ投稿はASP.NET MVCタグでタグ付けされていますか? ASP.NET MVCを使用している場合は、この問題は発生しません。しかし、他の問題があります。

+0

実際には、コンテンツページからサーバー側を削除してください。 with ... –

+0

私は大規模な、特にAJAX重いウェブサイトのサーバー側フォームの範囲を縮小することを個人的に提唱しています。このようなプロジェクトでは、開発者はWebフォームの単一形式のアプローチに問題が発生する可能性があり、これがWebフォームについて人々が不平を言う理由の1つです。この場合、開発者は長期的な利益のために短期的な優位性を放棄すべきです。しかし、これはこの質問のケースではないようです。 – Stilgar

+0

回答ありがとう、Stilgar :) – asenovm

関連する問題