在我的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>
答案 0 :(得分: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()
”。