1

我试图代表一个项目的大小。我们有多个供应商,我们用来存储尺寸和供应商值的表意味着我们有多个尺寸相等,但供应商不同。

我需要填充以下下拉列表,但不能有重复的例子,例如 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()几乎所有可以添加的地方。我不知所措。

4

1 回答 1

1

尝试按如下方式编辑您的代码:

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,我认为必须重新检查它。)

于 2012-10-23T15:16:17.003 回答