我有一张带有 Id、Col1、Col2、Col3、Col4 的表
使用下面的 linq 查询,我创建了一个模型并将其传递给强类型的以下视图,一切正常
var cse = _db.table.OrderByDescending(n => n.id).Take(5);
@model IEnumerable<proj.Table>
@{
ViewBag.Title = "Index";
}
<table>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.col1)
</td>
<td>
@Html.DisplayFor(modelItem => item.Col2)
</td>
<td>
@Html.DisplayFor(modelItem => item.col3)
</td>
<td>
@Html.DisplayFor(modelItem => item.Col4)
</td>
</tr>
}
</table>
问题-
我调整了一个 linq 查询,它只返回一列,视图更改如下
var cse1 = _db.Table.AsEnumerable().Select(n => new {n.Col1 }).OrderByDescending(n => n.id).Take(5);
@model dynamic
@foreach (var item in Model) {
<tr>
<td>
item.col1
</td>
<td>
item.col2
</td>
</tr>
}
</table>
以上运行在“item.col1”处返回此错误 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException 未被用户代码处理
当鼠标悬停在“item.col1”上时,它确实显示了正确的预期值。