예, JSON을 반환하는 것이 가장 좋은 방법입니다. 데이터베이스 쿼리 방법이 확실하지 않습니다. (LINQ 또는 ADO.NET DataTables 등을 사용합니까?)
보내려는 유형의 사용자 지정 개체가없는 경우 만들 것을 권장합니다. 그런 다음 배열을 가져와야합니다.
예 :
public class Person {
string Name { get; set; }
int Age { get; set; }
}
Person[] pArr = new Person[5];
그런 다음 당신은 JSON에서 해당 배열의 문자열 representaion을 만들 this 같은 타사 라이브러리를 사용할 수 있습니다.
string json = JsonConvert.SerializeObject(product);
그런 다음 당신은 응답 객체에 json
문자열이 그 페이지의 렌더링 방법을 재정 의하여, 클라이언트에 내려 보내 그래서 물품.
// Don't expect this code to work as it is, but take this as a guidance
Response.Clear();
Response.Write(json);
Response.Close();
클라이언트 측에서는 jQuery 라이브러리에서 페이지 요청을 보내고 JSON 응답을 처리합니다. 당신은 일반적으로를 Page_Load에서하는 것처럼
를 사용하여 객체를하고, 설명 된대로 JSON 문자열로 변환 :이 대한 AJAX 요청을 사용하지 않으려면 다음
$.getJSON('url', function(data) {
//process data
});
내 제안이다 위.
그런 다음 클라이언트 스크립트가로드 될 때 ClientScriptManager를 사용하여 클라이언트 측에서 JavaScript 변수를 만듭니다. 이 후
ClientScript.RegisterClientScriptBlock(typeof(Page), "unique_key", "var myObjectList = " + json, true);
때 다른 AJAX 호출을하지 않고 당신이 변수가 객체의 목록 "myObjectList"라는 것이다 페이지가로드.
자바 스크립트에서 해당 변수를 직접 참조하고 필요한 처리를 수행 할 수 있습니다.
희망이 도움이됩니다.
그래서 Response.Write (json)은 Page_Load 이벤트에서 수행 할 수 있지만 서버에 대한 별도 콜백을 수행하는 것처럼 보이는 jQuery가있는 것으로 보입니다. 나는 그것을 원하지 않는다. 처음으로 사용자가 사이트를 탐색 할 때 원래 요청을 홈페이지로 읽을 수 있기를 원합니다. 내가 어떻게 그럴 수 있니? onready()에는 서버에서 반환되는 데이터 인 param이 있습니까? – user441521
그런 경우에는 Response.Write()를 사용하면 안됩니다. 생성 된 json 문자열을 사용하여 javascript 변수를 만들어 페이지에 포함시키고 클라이언트 측에서 사용해야합니다. – BuddhiP
@ user441521, 두 번째 콜백없이 수행하는 방법에 대한 설명이 일부 추가되었습니다. 그것이 의미가 있는지보십시오. – BuddhiP