在下拉列表中选择和显示不同的值时遇到问题

时间:2012-10-23 15:02:00

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

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

我需要填充以下下拉列表,但不能重复说明例如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()。我很茫然。

1 个答案:

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