使用下拉结果筛选另一个下拉 C# MVC



我正在尝试根据第一个下拉列表中的用户选择更新下拉列表。我找到了这篇关于该主题的 SO 帖子,但我不太确定如何将 jquery 添加到我的 Razor 视图中以过滤值。有人可以指出我正确的方向吗?

到目前为止,我的观点:

@using System.Security.Claims;
@model UpdateClaimFormModel;
<h2>UpdateClaimView</h2>
@using (@Html.BeginForm())
{
    <select name="emailcheese">
        <option selected disabled>Select User</option>
        @foreach (var i in Model.UserNames)
        {
            <option>@i.ToString()</option>
        }
    </select>
    <select name="authpolicy">
        <option selected disabled>Select Claim:</option>
        @foreach (var i in Model.UserClaims)
        {
        <option>@i.Type.ToString()</option>
        }
    </select>
    <div class="form-group">
        <button type="submit" class="btn btn-default">Whoo</button>
    </div>
}

我的目标:

选择用户 [鲍勃、账单、吉姆]

选择声明:如果用户 bob:[1,2,3],如果用户账单:[1,4,8],如果用户他:[4,5,6]

这么简单,你可以做这样的事情

@using (@Html.BeginForm())
{
    <select name="emailcheese" id="selectUserNames">
        <option selected disabled>Select User</option>
        @foreach (var i in Model.UserNames)
        {
            <option>@i.ToString()</option>
        }
    </select>
    <select name="authpolicy" id="selectAuthPolicy"> 
    </select>
    <div class="form-group">
        <button type="submit" class="btn btn-default">Whoo</button>
    </div>
}

现在在脚本部分

$(function(){
 var userClaims = @Html.Raw(Json.Encode(Model.UserClaims));
 $(document).on('change','#selectUserNames'function(){
  var selectedVal = $(this).val();
  if(selectedVal == 'bob')
    {
      var html ='<option selected disabled>Select Claim:</option>';
      for(var i=1;i<userClaims.length;++i)
         {
           if(i==1||i==2||i==3)
             {
                html=html+'<option>'+userClaims[i].Type+'</option>';
             } 
          }
      $('#selectAuthPolicy').html(html);
      }
    })
 })

这只是如何实现这一目标的基本DEA,我刚刚为Bob尝试了许多其他方法可以实现THS

最新更新