国が選択されたときに州をロードするためにjQuery ajaxを使用できます。
<script type="text/javascript">
$(function(){
$("#Country").change(function(){
var states="";
var countryId=$(this).val();
$.getJSON("@Url.Action("GetStates","Home")/"+countryId,function(data){
$.each(data,function(index,item){
states+="<option value='"+item.ID+"'>"+item.StateName+"</option>";
});
$("#States").html(states);
});
});
});
</script>
Country
が Country ドロップダウンStates
の ID であり、 が States ドロップダウンの ID であり、国 ID をパラメーターとして受け取り、州を JSON 形式で取得するアクション メソッドがあると仮定します。
public ActionResult GetStates(int id)
{
var stateList=repo.GetStatesForCountry(id);
return Json(stateList,JsonRequestBehaviour.AllowGet);
}
repo.GetStatesForCountry
渡された国IDに基づいて州のリストを返すと仮定します。State
その関数呼び出しを、クラス オブジェクトのリストを返すメソッド呼び出しに置き換えることができます。
提案:動的な ViewBag /ViewData アプローチを避けて、Dropdwon にデータを入力し、より厳密に型指定されたアプローチに切り替えようとします。これを行う方法の例を次に示します。