需要Grid.Mvc的帮助。我正在传递实体框架生成的IQueryable集合并获得异常
行动方法:
public ActionResult Index(int id)
{
IQueryable<Document> documents = _dbContext.Document;
var model = new DocumentListViewModel()
{ Documents = documents
};
return View(model);
}DocumentListViewModel:
public class DocumentListViewModel
{
public IQueryable<Document> Documents { get; set; }
}查看:
@model CompanyName.DocFlow.Web2.Models.DocumentListViewModel
@using GridMvc.Html;
@Html.Grid(Model.Documents).Columns(columns =>
{
columns.Add(x => x.CreatedDate).Titled("Дата");//.Filterable(true);
columns.Add(x => x.IncomingNumber).Titled("Входящий номер");//.Filterable(true);
columns.Add(x => x.Description).Titled("Краткое описание");
}).WithPaging(10)例外:
“System.NotSupportedException”类型的异常发生在EntityFramework.SqlServer.dll中,但未在用户代码中处理 附加信息:只支持LINQ实体中排序输入的方法'Skip‘。方法'OrderBy‘必须在方法'Skip’之前调用。
这些文件指出:
如果数据源是数据库(例如),则需要将IQueryable集合传递给网格。Grid.Mvc使用IQueryable接口构造数据集合的查询表达式。 当您转到某个页面时,网格调用.Skip(N).Take(N)方法,当您对数据进行排序时,网格调用OrderBy或OrderByDescending方法等等。
教程链接:Grid.Mvc
发布于 2016-09-06 06:19:49
MVC网格描述:
当您转到某个页面时,网格调用.Skip(N).Take(N)方法,当您对数据进行排序时,网格调用OrderBy或OrderByDescending方法等等。
可以执行排序过程封装字段get方法,也可以在ActionResult方法中执行相同的操作。
示例代码:
public class DocumentListViewModel
{
private IQueryable<Document> _Documents;
public IQueryable<Document> Documents
{
get
{
return _Documents.Ordery(x=>x.Id);
}
set
{
_Documnets = value;
}
}
}或
public ActionResult Index(int id)
{
IQueryable<Document> documents = _dbContext.Document.OrderBy(x=>x.Id);
var model = new DocumentListViewModel()
{
Documents = documents
};
return View(model);
}https://stackoverflow.com/questions/39341348
复制相似问题