0

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

4

0 回答 0