最初のドロップダウンのchange
イベントを聞いて、選択した値を読み取り、この値でサーバーにajaxリクエストを行う必要があります。この値を受け取り、2番目のドロップダウンのデータを返すアクションメソッドがあります。あなたのajax呼び出しのコールバックで、戻って来るjsonデータを読んで、それを見て、2番目のドロップダウンに移ります。
フォームは2つのドロップダウン、CountryController
にGetStates
アクションメソッドを想定すると、米国
$(function(){
$("#Country").change(function(){
var countryId = $(this).val();
var url = "@Url.Action("GetStates,"Country")"+countryId;
$.getJSON(url,function(data){
var options="";
$.each(data,function(a,b){
options+="<option value='"+ b.Value +"'>" + b.Text + "</option>";
});
$("#State").html(options);
});
});
});
のための国のために1つずつを持っていると仮定すると、国イドを受け入れ、ため(バリューとTextプロパティで)項目のリストを返します状態は選択された国に属します。
public ActionResult GetStates(int id)
{
var dummyStates = new List<SelectListItem>
{
new SelectListItem { Value="1", Text="Michigan"},
new SelectListItem { Value="2", Text="Florida"},
new SelectListItem { Value="3", Text="Seattle"}
};
return Json(dummyStates,JsonRequestBehaviour.AllowGet);
}