我有一张包含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”时,它确实显示正确的预期值。