Asp.net mvc 3 mvc razor视图中的筛选下拉列表
我有两张桌子 1.国家Asp.net mvc 3 mvc razor视图中的筛选下拉列表,asp.net-mvc-3,c#-4.0,razor,Asp.net Mvc 3,C# 4.0,Razor,我有两张桌子 1.国家 身份证 国名 另一张桌子是 2.国家 州ID 州名 国家Id 我使用此代码填充citycontroller.cs中国家/地区的dropdownlist中的数据 ViewBag.countries = new SelectList(db.Couns.OrderBy(c => c.CountryName).ToList(), "ID", "CountryName"); 在create.cshtml @Html.DropDownList("Select Cou
- 身份证
- 国名
- 州ID
- 州名
- 国家Id
citycontroller.cs中国家/地区的dropdownlist中的数据
ViewBag.countries = new SelectList(db.Couns.OrderBy(c => c.CountryName).ToList(), "ID", "CountryName");
在create.cshtml
@Html.DropDownList("Select Country", ViewBag.countries as SelectList)
我想要的功能是,根据国家/地区下拉列表的选择填充状态下拉列表。应该做什么?如果您已经将状态列表下载到客户端机器上,那么knockout.js将是一个不错的选择。如果您只想下载与所选国家/地区相关的州,那么在选择国家/地区后,您应该向服务器发出AJAX调用,并让成功功能填充州列表。您需要使用AJAX
调用。您可能想看看我对一个类似于您的问题提供的答案。您可以使用wsejqueryajax在选择国家时加载州
<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>
假设repo.GetStatesForCountry
返回基于传递的国家Id的国家列表。您可以用返回State
类对象列表的方法调用替换该函数调用
建议:我会尽量避免使用动态ViewBag/ViewData方法来填充DropdOn,并切换到更强类型的方法。这是一个如何操作的示例。您所在国家/地区的下拉列表是否正常工作?“我看到了两个问题。”Mohaymin ya说,它工作得很好
public ActionResult GetStates(int id)
{
var stateList=repo.GetStatesForCountry(id);
return Json(stateList,JsonRequestBehaviour.AllowGet);
}