質問

私は、それゆえ私は、マスターページの上に置く、すべてのページに検索フォームを持っています。そのフォームにrunat=serverを追加した後、私は今、サーバーをラナ他のフォームを使用することができません;)

どのように人々は通常、この問題を回避できますか?

1つのアイデアは、一つのフォームrunat=serverでページ全体を囲むことであるが、その後私も(例えば、接触等)だけ一つのサブページで使用されるこれらの形態のマスターページにコードを持っている必要があります。

どのように人々は通常、この問題を回避できますか?

のthnx

役に立ちましたか?

解決

これは、多くの場合、ASP.NETで最も問題な設計上の決定の一つと考えられてきました。それはあなたがちょっとこの1フォームあたりのページ原則に固定されている悲しいことだ。

あなたが複数のフォームを持っているしたい場合があり一つの理由は、デフォルトボタンが送信ボタンへのブラウザによって設定されるということです。誰か検索ボックスに入力してEnterキーを押すには、メインフォーム(つまり、ログインページだと仮定)が、検索ボタンの小さなフォームを送信することはできません。

パネルとdefaultButtonプロパティを設定します。

この問題を回避する最も簡単なと「標準」の方法は、ASPを使用しています。これは、検索フィールドと検索ボタンの両方を含んでいる部分をラップする必要があります。

ページ全体を囲む、マスターページ内から<form>をコーディング心配しないでください。これは一般的なデザインです。ほとんどのサーバーコントロールは、フォームが必要なので、なぜ単純にかかわらず、それを含まない:そこにあることを想定している。

他のヒント

私は

のように、マスターページ上のW / Oにrunat =サーバーの検索htmlフォームを持っているあなたをお勧めしたいです
<form action="Search.aspx" method="get">
  <input type="text" name="q" /><input type="submit" />
</form>

使用方法=可能性が検索のURLを取る持って取得します。そして、あなたはSearch.aspxの分離コードでのクエリで必要なものは何でもやるます:

public void Page_Load(object sender)
{
  string q = Context.Request.QueryString["q"];
  /*...*/
}

最初の質問は、なぜあなたは複数にrunat =「サーバー」の形をしたいですか?

あなたはまだページにrunat="server"せずにフォームを持っている、または別のASP.NETページに投稿し、PostBackUrlコントロールにButtonプロパティを使用することができます。

スコット・ガスリーの<のhref = "http://weblogs.asp.net/scottgu/archive/2006/02を参照してください、あなたはどちらかのASP.NET Wizardコントロールで見ることができ、多段階のプロセスでデータを収集するにはここを/21/438732.aspx」のrel = "nofollowをnoreferrer">ブログ記事ます。

また、あなたはそれをすべて自分で管理し、ASP.NETパネルを使用するか、または別のページにASP.NETページから移動するには、既に述べたPostBackUrlを使用することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top