2016-03-30 20 views
0

2つのドロップダウンリストがあります。どちらの場合も、複数のオプションを選択できます。最初のドロップダウンで選択したオプションに基づいて、2番目のドロップダウンで複数のオプションを自動的に選択します。

図1:二dropdownlists

enter image description here

図2:コードdropdownlists

enter image description here

ためのあなたは、私が部分図でデバイスのドロップダウンを置か見るように。あなたは図3

図3に見ることができ、このためのコード :デバイスのドロップダウンのためのパーシャルビュー

enter image description here

この部分図の背後にある考え方は、オプションが最初のドロップダウンで選択された場合ということです、パーシャルビューをドロップダウンに置き換えると、ドロップダウン全体がリフレッシュされます。

図4:Ajaxの方法

enter image description here

このAjaxの方法は、最初のドロップダウンに変更イベントがあるときに、図5に表示されますコントローラにアクションメソッドを呼び出します。選択した値がアクションメソッドに渡されます。

図5:コントローラでの操作方法

enter image description here

唯一の問題は、今私は私のアクションメソッドに[]の代わりに、文字列の型として「オブジェクト」を得ることです。このオブジェクトからこれらの値をどのように取得できますか?私もajax POSTでそれをやろうとしましたが、パーシャルビューはそれ自体を更新しませんでした。

答えて

0

私はあなたの問題を非常によく理解できません、私はあなたが送信している同じリストを取得する感覚を得ません。

しかし、ActionDDDDLのモデルをDeviceDDLViewModelとして宣言し、PartialViewをオブジェクトとして返すと、オブジェクトは...となります。あなたがこの行にリストを返します。この

return PartialViewModel(model.ActiveDevices); 

については

return PartialView(model); 

を変更する場合はたぶん...送信同じリストyou're:/

+0

は確かに同じリストが送信されますが、主な違いは、最初のドロップダウンで選択したオプションに基づいて、特定のオプションが選択されていることです(最初は選択されていないオプション)。 –

関連する問題