我试图表示项目的大小。我们有多个供应商,我们用来存储尺寸和供应商价值的表格意味着我们有几种尺寸相同,但供应商不同。
我需要填充以下下拉列表,但不能重复说明例如S,M或L:
@Html.DropDownListFor(
m => m.RejectLog.SupplierTypeId,
new SelectList(Model.SupplierTypes, "ID", "Size",
Model.RejectLog.SupplierTypeId),
new {
@size = Model.SupplierTypes.Count,
@class = "reject-select",
@id = "Size",
@name = "Size"
}
)
我尝试过几乎每个地方都添加.Distinct()
。我很茫然。
答案 0 :(得分:0)
尝试按如下方式编辑代码:
new SelectList(
Model.SupplierTypes.Select( t => new {ID = t.ID, Size = t.Size} )
.Distinct(),
"ID", "Size", Model.RejectLog.SupplierTypeId)
如果您只想选择一个大小(并且具有大小值本身,而不是关联的ID,则返回到服务器),那么您可以使用Size作为Display值和“Identity”值:
new SelectList(
Model.SupplierTypes.Select( t => new {Size = t.Size} )
.Distinct(),
"Size", "Size", ???)
(我对Razor非常非常新,所以我不确定第四个参数的预期结果。但是,你不再使用ID,我认为必须重新检查。 )