2012-07-30 3 views
0

그리드에 JSON 데이터를 채우려합니다. 데이터는 아래의 형식으로되어 있습니다 :JSON 데이터를 asp.net mvc의 그리드에 렌더링

[{ 
    "SiteId":"1", 
    "SiteName":"University of Minessota", 
    "SiteStatus":"Fully Operational" 
},{ 
    "SiteId":"2", 
    "SiteName":"MSP Airport-Humphrey", 
    "SiteStatus":"Settlement Required" 
},{ 
    "SiteId":"3", 
    "SiteName":"City Of Minneapolis-Lot C", 
    "SiteStatus":"Fully Operational" 
},{ 
    "SiteId":"4", 
    "SiteName":"TargetCenter", 
    "SiteStatus":"Low Tickets" 
},{ 
    "SiteId":"5", 
    "SiteName":"Excel Energy Center", 
    "SiteStatus":"Out Of Tickets" 
}] 

그리고 난 내 컨트롤러 방법을 사용하여보기에이를 전달하고있다 : 나는 그리드에이 JSON 데이터를 채울 필요가 내보기에 지금

public JsonResult StatusReport() 
{ 
    List<CenterStatus> status = MvcList.Models.CenterStatus.GetStatus(); 
    return this.Json(status, JsonRequestBehavior.AllowGet); 
} 

를 :

$(document).ready(function() { 
    $.ajax({ 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     url: "CenterStatus/StatusReport.aspx", 
     data: "{}", 
     dataType: "json", 
     success: function (data) { 
      for (var i = 0; i < data.d.length; i++) { 
       $("#GridView1").append("<tr><td>" + data.d[i].siteID + "</td><td>" + data.d[i].siteName + "</td><td>" + data.d[i].siteStatus + "</td></tr>");  
      } 
    }, 
    error: function (result) { 
     alert("Error"); 
    } 
}); 

하지만 지금까지는 목표를 달성하지 못했습니다. 어떤 제안?

+0

이 (방화 등 Fidder)는 HTTP 추적 도구 중 하나를 사용하여 응답을 검사하고 응답을 확인합니다. 따라서 서버 쪽 문제인지 아니면 클라이언트 쪽 문제인지 알려줄 수 있습니다. –

+0

jQuery Grid를 사용하셨습니까? http://stackoverflow.com/questions/11491459/jqgrid-asp-net-mvc-3-implementation-from-scratch/11491885#11491885 –

답변

3

이렇게하면됩니다. 루프에 append으로 전화하지 마십시오. 변수를 설정하고 html 함수를 한 번만 호출하십시오.

success: function (data) { 
          var row="" 
          $.each(data,function(index,item){ 
           row+="<tr><td>"+item.SiteName+"</td></tr>"; 
          }); 
          $("#GridView1").html(row); 
         }, 

근무 샘플 : http://jsfiddle.net/x76LD/1/

0

나는 url: "CenterStatus/StatusReport.aspx",과 관련이있을 것이라고 생각합니다. 정확한 URL은 아마해야합니다 :

url: "/CenterStatus/StatusReport"

1

당신이 당신의 성공 기능에 불과 data 대신 data.d의를 사용해야 할 수 있습니다.

+0

동의합니다. 나는 ASP.Net MVC 1로 데이터를 사용하는 데 문제가 없었습니다. (데이터와 반대로). ASP.Net MVC 1. 데이터 구조를보기 위해 성공한 console.log (데이터)를 쉽게 수행 할 수 있습니다. – Gromer