我試圖使用Infragistics的網格來顯示我的數據庫中的項目列表。我在帶有Razor引擎的MVC應用程序中使用實體框架中的代碼優先方法。除了Infragistics網格之外,每個視圖都可以在視圖中正常工作。Infragistics網格的GET返回空響應
這裏是我的家的觀點:
@using Infragistics.Web.Mvc
@model IEnumerable<BusinessModel.Models.TestPlan>
@{
ViewBag.Title = "Home";
}
@(Html.Infragistics().Grid<BusinessModel.Models.TestPlan>(Model)
.AutoGenerateColumns(true)
.DataSourceUrl(Url.Action("igListTestPlan"))
.DataBind()
.Render())
這裏是我的控制器:
[GridDataSourceAction]
public ActionResult igListTestPlan()
{
return View(service.getListTestPlan());
}
使用螢火蟲,我可以清楚地看到,請求與狀態代碼「200 OK」發送,但響應標籤是空的。它也導致在控制檯(在infragistics.js)錯誤:
Uncaught TypeError: Cannot read property 'length' of undefined
我想這是因爲空的響應。
我試了一下:
調試我的控制器向我表明return View(service.getListTestPlan());
不返回一個空列表:我有3個有效項目
我也試過Html.Infragistics().Grid<BusinessModel.Models.TestPlan>(Model__.ToList())
,但什麼都沒有改變。另外Html.Infragistics().Grid(Model)
告訴我我有無效的參數
在此先感謝。
我會將此標記爲第二個解決方案的答案。謝謝。但是,由於我班的虛擬屬性,序列化程序沒有完成他的工作:我使用DTO類來完成它的工作。 –
序列化是一個單獨的問題,因爲默認的.NET真的只是DTO-s :)而且如果你使用MVC網格模型來綁定數據,它將使用這些。 到目前爲止,JSON.NET已經很好地處理了大部分事情,並且它的速度也更快,並且如果您正在生成數據響應,它非常合適。 –