【问题标题】:how to compare selected dropdownlist value with a model property in MVC如何将选定的下拉列表值与 MVC 中的模型属性进行比较
【发布时间】:2021-10-19 05:45:46
【问题描述】:

在我的 MVC 应用程序中,我有一个与以下模型相关的下拉列表

class MyObjectViewModel
{
    //comes from WebService, but that doesnt matter here
    List<PersonViewModel> AllPeople= {person1,person2, etc} 
   // PersonViewModel has properties like Id, Name, NeedToInform

    int SelectedPersonId;
}

@model MyModels.MyObjectViewModel

@Html.DropDownListFor(m=> m.SelectedPersonId, 
      Model.AllPeople.Select(p=>new SelectListItem{Value = p.Id, Text=p.Name}), new { @class = "form-control", onchange = "process(this.value)" })

如下所示的客户端代码

<script>
 process (val) {
 console.log(val);        
}         
</script>

我可以从 PersonViewModel 获取所选值,即 Id,但我需要比较来自 PersonViewModel 的所选人员是否具有属性 NeedToInform 为真。不知道我们如何在 javascript 函数中做到这一点,就在这些行

   <script>
    process (val) {
    console.log(val);
    //Here I need to compare the model like 
    // var doWeneedToInform=@Model.AllPeople.Where(x=>x.Id===val).NeedToInform        
  }         
</script>

【问题讨论】:

    标签: c# jquery asp.net-mvc razor


    【解决方案1】:

    试试这个

    <script>
    
    var model = @Html.Raw(Json.Encode(Model));
    console.log(JSON.stringify(model));
    
        process (val) {
        console.log(val);
    
        let needToInform= null;
    
    model.allPeople.forEach((item) => {
        if (item.Id === val) {
          needToInform = item.NeedToInfom;
         break;
        }
    });
            
      }         
    </script>
    

    如果模型很大,你可以使用ajax发送请求到一个特殊的api,返回你需要的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      相关资源
      最近更新 更多