Asp.net mvc 5 MVC5WebGrid问题
这是我的问题。在我的页面上,我正在使用几个webgrids从数据库中的不同表中提取数据。我在获取包含要显示的数据的列时遇到问题。如果我注释掉该列,网格将显示,并且必须根据该表中的数据量更正页数。如果我将该列放回,我会得到该列的名称不存在。所有网格都会发生这种情况。下面是代码的设置: 在控制器页面上:Asp.net mvc 5 MVC5WebGrid问题,asp.net-mvc-5,webgrid,Asp.net Mvc 5,Webgrid,这是我的问题。在我的页面上,我正在使用几个webgrids从数据库中的不同表中提取数据。我在获取包含要显示的数据的列时遇到问题。如果我注释掉该列,网格将显示,并且必须根据该表中的数据量更正页数。如果我将该列放回,我会得到该列的名称不存在。所有网格都会发生这种情况。下面是代码的设置: 在控制器页面上: var cdb = new CommonModel(); IEnumerable<SelectListItem> _for = cdb.Formats .OrderBy(
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;
如果我运行该页面,则会出现以下错误:
列“FormatName”不存在。该表将其列为FormatName,但我也尝试了Format、Formats和Name,结果是该列不存在。很可能我没有正确设置某些内容,从而导致此问题。有人看到我遗漏了什么吗?您使用LINQ将行选择到
SelectListItem
对象的集合中,因此没有,就不会有FormatName
列。您的选择将是(来自):
- 残废
- 团体
- 精选
- 正文
- 价值观
SelectListItem
@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" })