如何将选定的下拉列表值与 MVC 中的模型属性进行比较
Posted
技术标签:
【中文标题】如何将选定的下拉列表值与 MVC 中的模型属性进行比较【英文标题】:how to compare selected dropdownlist value with a model property in 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 SelectListItemValue = 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>
【问题讨论】:
【参考方案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,返回你需要的数据。
【讨论】:
以上是关于如何将选定的下拉列表值与 MVC 中的模型属性进行比较的主要内容,如果未能解决你的问题,请参考以下文章
如何使用jquery从dot net core mvc中的表中的下拉列表中显示选定的值
如何将下拉列表选定的数据传递到另一个表并在 asp.Net MVC 中更新该表