Infragistics 그리드를 사용하여 데이터베이스의 항목 목록을 표시하려고합니다. Razor 엔진을 사용하는 MVC 응용 프로그램에서 Entity Framework와 함께 코드 우선 메서드를 사용하고 있습니다. Infragistics 그리드를 제외하고는 모든 것이 잘 동작합니다. 여기 Infragistics 그리드의 빈 응답이 반환 됨
@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())
내 컨트롤러 : 여기
내 집이다 내가 요청이 "200 OK"상태 코드와 함께 전송되는 것을 볼 수 있지만, 명확하게 할 수 있습니다 불을 지르고 사용
[GridDataSourceAction]
public ActionResult igListTestPlan()
{
return View(service.getListTestPlan());
}
응답 탭은 비어 있습니다. 또한 콘솔 (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)
에 잘못된 매개 변수가 있다고 알립니다.
미리 감사드립니다.
두 번째 해결 방법이 적용된 답변으로 표시하겠습니다. 감사. 그러나, 클래스의 가상 속성 때문에 serializer가 자신의 업무를 수행하지 못했습니다. DTO 클래스를 사용하여 작동하도록했습니다. –
직렬화는 슬픈 듯이 슬픈 듯이 슬픈 듯이 기본 .NET의 것들은 실제로 DTO-s와 비슷합니다. 그리고 MVC 모눈 모델을 사용하여 데이터에 바인딩하면 그것들을 사용할 것입니다. 지금까지 나에게있어서 JSON.NET은 대부분의 것을 매우 잘 처리했다. 또한 데이터 응답을 생성 할 때 더 빠르다. –