2016-04-12 148 views

回答

1

您需要监听第一个下拉菜单中的change事件,读取所选值并使用此值向服务器发出ajax请求。具有接受此值并返回第二个下拉列表的数据的操作方法。在你的ajax调用的回调函数中,读取返回的json数据,查看它并填充第二个下拉列表。

假设你的形式有2个下拉菜单,一个国家和一个国家

$(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); 
    }); 

    }); 

}); 

假设GetStates行动方法CountryController接受国家ID和返回的项目列表(使用值和文本属性)将州属于选定的国家。

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); 
} 
相关问题