我正面临 mvc telerik 网格的问题 这是我的观点:
@(Html.Telerik().Grid(Model.EmployeeList)
.Name("EmployeeGrid")
.Columns(colums =>
{
colums.Bound(e => e.First_Name);
colums.Bound(e => e.Last_Name);
colums.Bound(e => e.Hire_Date);
colums.Bound(e => e.Home_Phone);
})
.DataBinding(dataBinding => dataBinding.Ajax().Select("_AjaxBinding", "Home"))
.Groupable()
.Sortable()
.Pageable(paging=>paging.PageSize(10))
.Filterable()
)
还有我的 Controller 代码
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public ActionResult _AjaxBinding(GridCommand command)
{
using (var contax=new NorthwindEntities()){
int pagesize=command.PageSize;
int page=command.Page;
var EmployeeList = (from items in contax.Employees
select new
{
items.First_Name,
items.Last_Name,
items.Hire_Date,
items.Home_Phone
});
return View(new GridModel
{
Data = EmployeeList
});
}
}
加载时,数据从数据库正确加载,但当我单击分页或排序数据时发生内部服务器错误 500。
提前致谢。
请您参考如下方法:
您正在一次性范围内使用 Linq 查询。但查询执行会延迟到使用它(当您离开 using {} 范围时)。 并且您的上下文已处理! 解决方案:
在查询末尾添加 .ToList :
var EmployeeList = (from items in contax.Employees
select new
{
items.First_Name,
items.Last_Name,
items.Hire_Date,
items.Home_Phone
}).ToList();
