モデルには 2 つの DropDownList 要素があります。
[DisplayName("Site")]
public List<KeyValuePair<int, string>> Site { get; set; }
public int SelectedSiteID { get; set; }
<%= Html.DropDownListFor(model => model.SelectedSiteID, new SelectList(Model.Site, "Key", "Value"))%>
[DisplayName("Data Center")]
public List<KeyValuePair<int, string>> DataCenter { get; set; }
public int SelectedDataCenterID { get; set; }
<%= Html.DropDownListFor(model => model.SelectedDataCenterID, new SelectList(Model.DataCenter, "Key", "Value"))%>
ユーザーが最初の選択を変更したときに、2 番目の DropDownList で ListItem のコレクションを変更しようとしています。
これは次の方法で可能だと思いますが、これが良い習慣であることを確認したかったのです。
- jQuery を使用して、最初の DropDownList の変更イベントにバインドします。
- 変更イベントに応答する場合 -- 新しく選択された値を使用して AJAX 要求をサーバーに送信します。
- サーバーは、2 番目の DropDownList の ListItem オブジェクトのコレクションを表す JSON で応答します。
- jQuery を使用して、返された JSON 要素が含まれるように、2 番目の DropDownList の選択を変更します。
これはすべて少し...非MVC3yのようです。これは私が求めていることを達成するための標準的な方法ですか、それとももっと明確な方法はありますか?