2012-04-10 6 views
0

私はASP.NET MVC3のモバイルサイトで作業しています。私はヘッダーに検索バーがあるページを持っています。このヘッダーは他のすべてのビューに共通するレイアウトページから来ています。私の特定のページには、ページ固有のコンテンツ(フォーム)があります。私Customer/Addアクションの2つのフォーム(1つはレイアウト、1つはページ)asp.netで処理する方法mvc3

enter image description here

、私は強く私のCustomerViewModelに型付けされたCustomerの追加ビューを返します。 Add Viewにformタグがあり、投稿されるのはHttpPostAddフォームが送信されるときのアクションメソッド。それは結構です。私の質問は、検索ボックスのコンテンツをどのように処理するのですか?私は1つのフォームがページ内に許可されていると信じています。私はSearchViewModelが私の検索ビュー(部分)にバインドされている場合、それは私のページに2つのフォームになります。だから私はそれをすることはできません。

私は、Javaスクリプトのコンテンツを読んで、検索結果を得るために別のアクションを呼び出すことで検索部分を処理できます。それを行う唯一の方法はありますか?私は、Javaスクリプトが無効になっているデバイスについて心配しています。私は何をすべきか ?アドバイスをお願いします

答えて

1

いいえページ上に1つ以上のフォームを持つことができます。実際、ここにはあなたがすべきです。あなたの顧客の追加ページは1つのアクションメソッドに提出する必要がありますが、検索フォームは別のアクションメソッドに提出する必要があります。

ウェブフォームに精通している場合、そのフレームワークではページに1つのフォームしか表示されませんが、HTMLで必要なフォームはありません。 Webformsは、フレームワークが(ViewStateを使用して)さまざまなサーバーコントロールからのPOST要求を渡ってすべてのデータを運ぶ唯一の方法であるため、これを必要とします。歴史的には、WebフォームはあまりHTMLやHTTPには適していません。

HTMLの他のフォームにネストされたフォームを作成することはできませんが、1つのページに複数のフォームを含めることは完全に正当です(そしてMVCで推奨されます)。

AJAXについては、JavaScriptを有効にしていないデバイスについては心配しません。惑星には、自分のウェブデバイスにJavaScriptを持たない人が6人から7人しかいません。誰かがJavaScriptを無効にすると、他のウェブサイトの99%を体験することはできません。

+0

これはupvoteに値する。 – Happy

関連する問題