Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 mvc razor视图中的筛选下拉列表_Asp.net Mvc 3_C# 4.0_Razor - Fatal编程技术网

Asp.net mvc 3 mvc razor视图中的筛选下拉列表

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

我有两张桌子

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