2014-10-10 2 views
1

모델을 직접 전달할 때만 그리드의 항목을 채울 수 있습니다. Json 데이터를 얻으려고하면 그럴 수 없습니다. 여기 ASP.NET MVC 검도 그리드

내 컨트롤러입니다 :

namespace MVC_Test1.Controllers 
{ 
    public class StudentsController : Controller 
    { 
     private ContosoUniversityEntities db = new ContosoUniversityEntities(); 

     public ActionResult Index() 
     { 
      db.Configuration.ProxyCreationEnabled = false; 
      return View(db.students.ToList()); 
     } 


     public ActionResult Read([DataSourceRequest] DataSourceRequest request) 
     { 
      using (var northwind = new ContosoUniversityEntities()) 
      { 
       IQueryable<student> students = northwind.students; 
       DataSourceResult result = students.ToDataSourceResult(request); 

       return Json(result); 
      } 
     } 
    } 
} 

나는 그리드가 작동하고 모든 항목을 보여줍니다보기가있는 경우 :

@model MVC_Test1.Models.student 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

@*@(Html.Kendo().Grid(Model) 
    .Name("grid") 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .ServerOperation(false) 
    ) 
    .Columns(columns => 
    { 
     columns.Bound(p => p.FirstName); 
     columns.Bound(p => p.LastName); 
    }) 
)*@ 

하지만 JSON에서 읽으려고하면 작동하지 않습니다 . 빈 그리드를 보여줍니다.

@(Html.Kendo().Grid<MVC_Test1.Models.student>() 
    .Name("Grid") 
    .Columns(columns => 
    { 
     columns.Bound(p => p.FirstName); 
     columns.Bound(p => p.LastName); 
    }) 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .Read(read => read.Action("Read", "Students")) 
    ) 
) 

나는 틀린 일을하고 있다고 확신한다. 그러나 나는 그것을 이해할 수 없다. 도와 줘서 고맙다.

+0

'List '대신'IQueryable'을 사용하고 있기 때문일 수 있습니다 – CSharper

+1

브라우저 콘솔에 오류가 있습니까? 귀하의 요청이 조치에 부딪 혔습니까? –

+1

목록을 사용하도록 변경했지만 데이터가 없습니다. 오류가없고 예, 작업을 치는 중이고 데이터를 가져 오는 중 목록이 여전히 비어 있습니다 ... 이것은 매우 이상합니다. –

답변

0

많은 문제를 볼 수 없습니다. 그러나 세 가지를 시도해보십시오.

return Json(result, JsonRequestBehavior.AllowGet); 

둘째로, 나는 문제가 있다고 생각하지 않지만 IQueryable 대신 List를 사용해보십시오.

마지막으로, JsonResult 대신 ActionResult을 돌아보십시오.

희망이 도움이됩니다.

+0

나는 두 가지 일도없고 아무 결과도 시도하지 않았습니다 ... 무슨 일이 일어나고 있는지 이해하지 못합니다. .. –

+0

그것은 백엔트를 친다? Students 컨트롤러의 Read() 함수를 의미합니다. 그것은, 바로 값을 반환합니까 ?? – Mahib

+0

[JsonResult] (http://msdn.microsoft.com/en-us/library/system.web.mvc.jsonresult%28v=vs.118%29.aspx) * ActionResult (파생 형식) ,보다 구체적인 반환 유형을 사용한다고해도 실제로는 아무 것도 변경되지 않습니다. –

0

마지막으로, 모든 것을 시도한 후 (나는 여러분 덕분에) 새로운 proyect를 시작했고 효과가있었습니다. 나는 무엇이 잘못되었는지는 모르지만 지금은 효과가있다. 감사합니다