C# 无法将动态数据表绑定到Grid.MVC

C# 无法将动态数据表绑定到Grid.MVC,c#,asp.net-mvc,datatable,grid,C#,Asp.net Mvc,Datatable,Grid,我想使用创建网格(表)。在这个网格中,我想绑定到一个DataTable,这是我从SELECT*fromtable获得的表 看法 我的观点是这样的: @model DataTable @{ ViewBag.Title = "ViewTable"; } @using GridMvc.Html @using System.Data <h2>ViewTable</h2> @Html.Grid(Model.Columns.Cast<IEnumerable<Dat

我想使用创建网格(表)。在这个网格中,我想绑定到一个DataTable,这是我从
SELECT*fromtable
获得的表

看法 我的观点是这样的:

@model DataTable
@{
    ViewBag.Title = "ViewTable";
}
@using GridMvc.Html
@using System.Data
<h2>ViewTable</h2>
@Html.Grid(Model.Columns.Cast<IEnumerable<DataColumn>>()).Columns(columns =>
{
    columns.Add().RenderValueAs(a => Html.ActionLink("Edit", "Index"));
    foreach (DataColumn item in Model.Columns)
    {
        try
        {
            columns.Add(a => item).Titled(item.ColumnName);
        }
        catch (Exception)
        {

            throw;
        }
    }
})
在这里,我得到以下异常(错误消息):

网格不支持表达式“a=>value(ASP.\u Page\u Views\u Home\u ViewTable\u cshtml).Model.Columns.get\u Item(value(ASP.\u Page\u Views\u Home\u ViewTable\u cshtml+c\u DisplayClass4).idx)”


如何实现这一点?

您可以设置一个if条件并跳过添加该列

try
{
    columns.Add(a => item).Titled(item.ColumnName);
    if (item.ColumnName == "Your Column name")
    {
        //skip that column
    }

}

不,那不是我要找的。例如,项目列名称是
ID
NAME
,它仍然会抱怨项目。我想这与foreach循环有关,但是for循环也不是work@DavidWalser你有没有找到解决这个问题的办法?我得到的异常与您在我正在处理的某些代码中看到的相同。以下是我找到的解决方案的链接:@knot22不幸的是,我不记得我是否能够解决这个问题,并且我再也无法访问这个项目了:/我希望你能找到解决方案
try
{
    columns.Add(a => item).Titled(item.ColumnName);
    if (item.ColumnName == "Your Column name")
    {
        //skip that column
    }

}