Asp.net mvc WebGrid数据显示在第一列中

Asp.net mvc WebGrid数据显示在第一列中,asp.net-mvc,asp.net-mvc-4,razor,webgrid,Asp.net Mvc,Asp.net Mvc 4,Razor,Webgrid,在我的ASP.NET MVC应用程序中,我有一个呈现表的局部视图 简而言之,我的问题是WebGrid数据源中每个对象的所有属性的所有值都显示在表的第一列中,而不是每列的属性值。我可以在承载每个属性的第一列单元格中看到每个属性单元格的边框 局部视图的模型为List,其中ReportTableEntry为: public class ReportTableEntry { public DateTime Time { get; set; } public int

在我的
ASP.NET MVC
应用程序中,我有一个呈现表的局部视图

简而言之,我的问题是WebGrid数据源中每个对象的所有属性的所有值都显示在表的第一列中,而不是每列的属性值。我可以在承载每个属性的第一列单元格中看到每个属性单元格的边框

局部视图的模型为
List
,其中
ReportTableEntry
为:

public class ReportTableEntry
{
    public DateTime Time             { get; set; }
    public int      OpenedSessions   { get; set; }
    public int      ClosedSessions   { get; set; }
    public int      SnapshotSessions { get; set; }
    public int      TotalSessions    { get; set; }
}
呈现局部视图的视图调用

@Html.Partial("Table", Model.TableEntries)
(这里模型指的是父视图的模型,而不是局部视图的模型),其中Model.TableEntries是一个列表,在局部视图中,当我检查它时,模型的内容似乎是有效的

我尝试了我能想到的每一种组合:

  • 我直接使用父视图的模型,并使用source:model.TableEntries创建了WebGrid
  • 我尝试在局部视图中使用非类型模型
  • 我指定了网格的列名,并使用了默认值
  • 我尝试用ColumnAttribute装饰ReportTableEntry的属性
  • 我使用了grid.Html,有和没有样式,有和没有columns参数
  • 我切换了分页、排序和添加/删除ajaxUpdateContainerId
尽管如此,ReportTableEntry的所有属性值都填充在第一个表列中

我注意到的一点是grid.Columns()返回一个空数组

为了完整性起见,以下是产生这些不良结果的最简单的变化:

@model List<ReportTableEntry>

<div id="reportDataDiv">
@{
    if (Model == null)
    {
        <p>No data to show</p>
    }
    else
    {
        var grid = new WebGrid(source:                Model, 
                               columnNames:           null, 
                               defaultSort:           "", 
                               rowsPerPage:           100, 
                               canPage:               true, 
                               canSort:               false, 
                               ajaxUpdateContainerId: "reportDataDiv");

        @grid.GetHtml()
    }
}
</div>
@型号列表
@{
if(Model==null)
{
没有数据显示

} 其他的 { var grid=新的WebGrid(来源:模型, columnNames:null, defaultSort:“”, 行页码:100, 坎佩奇:没错, 坎索特:错, ajaxUpdateContainerId:“reportDataDiv”); @grid.GetHtml() } }

我在这里错过了什么?

多蠢啊。。。css,td元素,float:left——就是这样