Asp.net mvc 填充a<;选择>;当用户在另一个列表中选择值时,从服务器端集合中选择列表

Asp.net mvc 填充a<;选择>;当用户在另一个列表中选择值时,从服务器端集合中选择列表,asp.net-mvc,asp.net-mvc-3,entity-framework,entity-framework-4,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 3,Entity Framework,Entity Framework 4,Asp.net Mvc 4,如果用户从HTML下拉列表a中选择一个值,我想对服务器进行ajax调用,根据用户的选择填充HTML下拉列表B中的值 我正在使用ASP.NETMVC4和EF4。我该怎么做?jQuery是你最好的朋友。首先将事件绑定到dropdownlist A,然后对服务器进行ajax调用。最后,获取响应并将其设置为dropdownlist B $('#ddlA').change(function() { $('#ddlB').load('server/pageThatReturnsHtml') });

如果用户从HTML下拉列表a中选择一个值,我想对服务器进行ajax调用,根据用户的选择填充HTML下拉列表B中的值


我正在使用ASP.NETMVC4和EF4。我该怎么做?jQuery是你最好的朋友。首先将事件绑定到dropdownlist A,然后对服务器进行ajax调用。最后,获取响应并将其设置为dropdownlist B

$('#ddlA').change(function() {
    $('#ddlB').load('server/pageThatReturnsHtml')
});
这假设“server/pageThatReturnsHtml”返回html,例如:

<option value="option1" selected="selected">Option 1</option>
 <option value="option2">Option 2</option>
选项1
选择2

但是,您也可以返回一个json对象并迭代结果,将项目添加到ddl B中

侦听第一个下拉列表的更改事件,然后以
json
格式加载第二个下拉列表的内容,并将其注入第二个下拉列表

<select id="country">
  <option value='1'>USA</option>
  <option value='2'>Canada</option>
</select>
<select id="States"></select>

假设
GetStatesForCountry
方法返回属性为
ID
Name
的状态对象列表。

谢谢函数。我相信在循环中有几个修正。。。$.each(data.Items,函数(索引,项){Items+=“”+item.Name+“”;});
$(function(){
  $("#country").change(function(){
    var _this=$(this);
    var items="";
    $.getJSON("@Url.Action("GetStates","Country")/"+_this.val(),function(data){
           if(data.Status==="Success")
           {
              $.each(data.Items,function(index, item){
                 items=+"<option value='"+item.ID+'">"+item.Name+"</option>";
              });                 
           }
           $("#states").html(items);
    });
  });       
});
public ActionResult GetStates(int id)
{
  List<State> stateList=yourRepositary.GetStatesForCountry(id);
  return Json(new { Status="Success", Items=stateList},
                                           JsonRequestBehaviour.AllowGet);
}