我有两个DropDownListFor帮助器,第二个的SelectList取决于第一个选择的值。
所以,我需要做的是:当用户从第一个DropDownListFor帮助器中选择一个值时,必须使用适当的值更新第二个DropDownListFor帮助器的SelectList。
如何使用jQuery更新此SelectList?
答案 0 :(得分: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);
}