2009-05-20 19 views
0

jQueryとAjaxを使用してASP.NET MVCでカスケードドロップダウンを処理する例をいくつか見てきました。もちろん、これにはjavascriptが有効になっている必要があります。 JavaScriptが無効になっていると仮定すると、カスケード・ドロップダウンを処理するためのベスト・プラクティスとなります。ASP.NET MVCでカスケードドロップダウンを処理するためのベストプラクティス

asp.net Webフォームの現実のシナリオは、私が働いている会社の在庫アプリケーション用に開発したものです。私はウェブページにドロップダウンをカスケード接続しています。この例では、Car Makesのドロップダウンと、選択したCar Makeに依存するCar Modelを指定します。また、このフォームでは、検索機能を実装するユーザーコントロールを用意しています。ユーザーは都市や州に入り、検索を選択し、グリッドビューから顧客を選択し、顧客IDをフィールドに格納するイベントをトリガーします現在のWebページの順序このページではJavaScriptを使用していません。ドロップダウンはポストバックをトリガし、2番目のドロップダウンでドロップダウン値を再ロードします。検索ユーザーコントロールは、ユーザーが[検索]ボタンをクリックしたときと、ユーザーがグリッドビューから顧客を選択したときにポストバックを引き起こします。

これはMVCでどのように処理されますか?私の例のポストバックはMVCのアクションと同じですか?カーメイクの変更のためのアクションがありますか?検索のためのアクション?グリッドビューからの選択のアクション?

+0

Javascriptを無効にしてASP.NETフォームでカスケードドロップダウンを達成できたと言われるようです。そんなことがあるものか? – AnthonyWJones

+0

@AnthonyWJones: 'populate'ボタンが含まれていない限り、そうではありません。 –

+0

彼はおそらく単に続行/次のボタンを持っていて、もう1つのドロップダウンはポストバックの後まで隠されています。 –

答えて

0

大量のデータでない限り、< optgroup>タグを使用してグループを表示することを検討する必要があります。アクセシビリティの観点からするのも良い方法です。

オプトグループは階層の1つのレベルに対してのみ機能することに注意してください。

0

私は3つのドロップダウンがあり、それぞれの値は前の値に依存しているシナリオです。私はフォームが 投稿を取得したときに、呼び出す掲載 Index.aspx、ですので、もしそれがデフォルトで特定のACTIONNAMEと に行くことは、 aspxページ名と同じになります知っている

メソッドインデックス()はコントローラ にあります。上記の動作がとても

From:<%=Html.DropDownList("From", (SelectList)ViewData["From"], new { onchange = "this.form.action='Index'; this.form.submit();" })%> 
To :<%=Html.DropDownList("To", (SelectList)ViewData["To"], new { onchange = "this.form.action='GetTo'; this.form.submit();" })%> 

ことがなく、コントローラの月桃方法に移動しますので、私は、「月桃」最初にしてデータを投稿するアクション名を変更したビットの問題を引き起こしていた

インデックス()。

ここでは、javascriptを使用してアクション名を変更し、フォームを送信しています。

これは役に立ちます。

関連する問題