您可以使用 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 DropDownStates
的 ID,并且是您的 States Dropdow 的 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 并切换到更强类型的方法。这是一个如何做到这一点的例子。