EF数据模型中的ASP.net MVC4网格
本文关键字:net MVC4 网格 ASP 数据模型 EF | 更新日期: 2023-09-27 17:59:55
我正试图在我的项目中使用GRID.VC,但我在_grid.cshtml
文件的第27行收到了这个错误System.NotSupportedException: The Skip method is only supported for sorted input in LINQ to Entities. The OrderBy method must be called before the Skip method.
:
Ligne 25 : @helper RenderGridBody()
Ligne 26 : {
Ligne 27 : if (!Model.ItemsToDisplay.Any())
Ligne 28 : {
Ligne 29 : <tr class="grid-empty-text">
这是我的观点:
@Html.Grid(Model).Columns(columns =>
{
columns.Add(item => item.OFFRE_ID).Titled("Custom column title").SetWidth(110);
columns.Add(item => item.REGION.NOM).Sortable(true);
columns.Add(item => item.DESCRIPTION).Sortable(false);
columns.Add(item => item.OFFRE_DATE).Sortable(true);
}).WithPaging(20)
请问怎么修?
正如您所知,.WithPaging
导致了这种情况。它使GridView只接受排序列表。这意味着传递未排序的列表将引发异常。
// Passing this to the gridview will throw an exception because it is not sorted.
var offre = db.OFFRE.Include(o => o.REGION);
解决方案是在将列表传递到网格视图之前对其进行"排序"。
var offre = db.OFFRE
.Include(o => o.REGION)
.OrderBy(c => c.OFFRE_ID); // This converts the list into a sorted list.
return View(offre);
为了解决这个问题,我不得不在Controler结果中添加OrderBy,如下所示:
public ActionResult Index()
{
var offre = db.OFFRE.Include(o => o.REGION);
return View(offre.OrderBy(c => c.OFFRE_ID));
}