1

私はMVCTelerikグリッドの問題に直面しています私の見解があります:

@(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()
    )

そして私のコントローラーコードがあります

[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が発生します。

前もって感謝します。

4

1 に答える 1

4

使い捨てスコープ内で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();
于 2012-12-20T09:22:44.263 に答える