我想根据上一个字段中的选择填充一个下拉列表。
目前,我的ViewModel
中有2个列表,如下所示:
Manufacturers = context.ManufacturersTable.OrderBy(x => x.ManufacturerName).ToList(),
Models = context.ModelsTable.OrderBy(x => x.ModelName).ToList(),
两个列表都使用带有自己数据模型的SQL表填充。
在Models
表中,有一个ManufacturerID
列,与ManufacturerID
表中Manufacturers
的列匹配。
我想根据对Models
列表的选择来填充Manufacturers
列表,以便仅显示与所选制造商关联的模型。
我该如何使用Lambda
来做到这一点?
我一直在玩“哪里”和“选择”,但还不太能够到达那里。
编辑:
这是桌子
MANUFACTURER | MANUFACTURER_ID
Manufacturer 1 GUID1
Manufacturer 2 GUID2
MODEL | MODEL_ID | MANUFACTURER_ID
Model 1 | GUID1 | GUID1
Model 2 | GUID2 | GUID2
Model 3 | GUID3 | GUID1
Model 4 | GUID4 | GUID1
答案 0 :(得分:1)
更改制造商字段的选择时,请调用一个带有制造商ID作为返回以下参数的控制器方法:
context.ModelsTable
.Where(x => x.ManufacturerId == manufacturerId)
.OrderBy(x => x.ModelName)
.ToList();
...然后用结果更新选择列表。
答案 1 :(得分:0)
context.ModelsTable.Where(x => x.ManufacturerId == value).OrderBy(x => x.ModelName).ToList()
这行不通吗?将ManufactureId传递为value
。
Where
关键字过滤数据,但返回表中的所有列。使用Select
,您可以选择要返回的列。您可以一起使用这些关键字。