MVC5 Webgrid问题

时间:2015-05-10 18:28:43

标签: asp.net-mvc-5 webgrid

这是我的问题。在我的页面上,我使用数据库中的各种表格中的几个webgrids。我遇到问题,请在列中显示要显示的数据。如果我注释掉该列,则网格将显示并且必须更正该表中数据量的页数。如果我重新放入该列,我会得到该列的名称不存在。所有的网格都在发生这种情况。所以这里是代码的设置:

在控制器页面上:

var cdb = new CommonModel();
IEnumerable<SelectListItem> _for = cdb.Formats
        .OrderBy(f => f.FormatName)
        .Select(f => new SelectListItem { Value = f.FormatID.ToString(), Text = f.FormatName });
ViewBag.Forma = _for;

在视图页面上:

@model HomeInventory.Web.Areas.Classes.Video
@{
    ViewBag.Title = "Add Movies / Television Shows";
    Layout = "~/Views/Shared/_MovieLayout.cshtml";
}
@{
var fgrid = new WebGrid(source: ViewBag.Forma,
                        defaultSort: "FormatName",
                        rowsPerPage: 3, canSort: false,
                        pageFieldName: "pg");


}
@fgrid.GetHtml(tableStyle: "grid", columns: fgrid.Columns(fgrid.Column(format: (Formats) => Html.CheckBox("FormatID")), fgrid.Column("FormatName")))
                @Html.ValidationMessageFor(model => model.Formats, "", new { @class = "text-danger" })

如果我运行该页面,则会收到以下错误: 列&#34; FormatName&#34;不存在。该表将其列为FormatName,但我也尝试使用格式,格式和名称,结果与列不存在相同。我很可能没有正确设置,导致这个问题。有谁看到我可能错过了什么?

1 个答案:

答案 0 :(得分:0)

您已使用LINQ将行选择为SelectListItem个对象的集合,因此,不会有FormatName列。您的选择是(来自https://msdn.microsoft.com/en-us/library/system.web.mvc.selectlistitem_properties%28v=vs.118%29.aspx):

  • 已停用
  • 集团
  • 已选择
  • 文字

如果您想使用表格中的列,请不要使用SelectListItem