删除下拉列表中的重复项,组项

问题描述 投票:0回答:1

在我的MVC cshtml页面中,我有一组通过Model传入的记录。我想将值放在一列中,并在下拉列表/选择中显示唯一值。我收到一个错误:

Unable to cast object of type 'Grouping System.String,VrsDataModel.Data.AuditItem]' to type 'VrsDataModel.Data.AuditItem'...

我的代码:

<select class="form-control" id="userSearch">
    <option></option>
    @foreach (AuditItem ai in Model.GroupBy(ai => ai.UserLogin))
    {
        <option value="@ai.UserLogin.ToName()">@ai.UserLogin.ToName()</option>
    }
</select>
.net linq razor .net-core
1个回答
0
投票

错误消息告诉您“ai”变量不是“AuditItem”类型。看看GroupBy方法的定义(我假设这是“Linq”方法)。它返回类型“IEnumerable<IGrouping<TKey, TElement>>”,因此“ai”将是“IGrouping<TKey, TElement>”,其中TKey将是“UserLogin”属性的类型,而TElement是“模型”的任何类型。您可以使用“ai.Key”来获取分组值,并且可以通过迭代“ai”的内容来枚举分组的项目。

如果您只想要不同的值,请尝试“Model.Select(x=>x.UserLogin.ToName()).Distinct()”。

© www.soinside.com 2019 - 2024. All rights reserved.