【问题标题】:Filtering Dropdown list in mvc razor view在 mvc razor 视图中过滤下拉列表
【发布时间】:2012-08-08 13:29:06
【问题描述】:

我有两张桌子

1.国家

  • 身份证
  • 国名

其他表是

2.状态

  • 州 ID
  • 州名
  • 国家/地区 ID

我正在使用此代码在citycontroller.cs 的国家/地区下拉列表中填充数据

ViewBag.countries = new SelectList(db.Couns.OrderBy(c => c.CountryName).ToList(), "ID", "CountryName");

create.cshtml

 @Html.DropDownList("Select Country", ViewBag.countries as SelectList)

我想要根据国家下拉列表的选择填充状态下拉列表的功能应该做什么?????

【问题讨论】:

  • 您所在国家/地区的下拉菜单是否有效?我看到了几个问题。
  • @Mohayemin ya 它的工作完美

标签: asp.net-mvc-3 c#-4.0 razor


【解决方案1】:

如果您已经将状态列表下载到客户端计算机,那么 knockout.js 将是可行的方法。如果您只想下载与所选国家/地区相关的州,则应在选择国家/地区时对服务器进行 AJAX 调用,并让成功函数填充州列表。

【讨论】:

    【解决方案2】:

    您需要为此使用Ajax 调用。您可能想看看this 我提供的与您类似的问题的答案。

    【讨论】:

      【解决方案3】:

      您可以使用 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 DropDown 的 ID,States 是您的 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 并切换到更强类型的方法。 Here 是一个示例。

      【讨论】:

        猜你喜欢
        • 2015-06-27
        • 2018-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多