ASP에서 JSON을 반환하는 방법NET 및 jQuery
제 코드로 JSON 데이터를 반환하는 방법을 알 수 없습니다.
JS
$(function () {
$.ajax({
type: "POST",
url: "Default.aspx/GetProducts",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// How to return data here like a table???
$("#Second").text(msg.d);
//alert(msg.d);
}
});
});
Default.aspx.cs의 C#
[WebMethod]
public static string GetProducts()
{
var products = context.GetProducts().ToList();
return What do I have to return ????
}
멀지 않은 곳에서 다음과 같은 작업을 수행해야 합니다.
[WebMethod]
public static string GetProducts()
{
// instantiate a serializer
JavaScriptSerializer TheSerializer = new JavaScriptSerializer();
//optional: you can create your own custom converter
TheSerializer.RegisterConverters(new JavaScriptConverter[] {new MyCustomJson()});
var products = context.GetProducts().ToList();
var TheJson = TheSerializer.Serialize(products);
return TheJson;
}
당신은 이 코드를 더 줄일 수 있지만, 나는 그것을 명확하게 하기 위해 그대로 두었다.실제로 다음과 같이 쓸 수도 있습니다.
return context.GetProducts().ToList();
그러면 json 문자열이 반환됩니다.저는 커스텀 컨버터를 사용하기 때문에 좀 더 알기 쉬운 것을 선호합니다.Json.net도 있지만 프레임워크는JavaScriptSerializer
바로 사용할 수 있습니다.
오브젝트를 반환하기만 하면 됩니다.JSON에 파서가 됩니다.
public Object Get(string id)
{
return new { id = 1234 };
}
이 구조는 나에게 적합하다 - 나는 작은 태스크 관리 어플리케이션에서 그것을 사용했다.
컨트롤러:
public JsonResult taskCount(string fDate)
{
// do some stuff based on the date
// totalTasks is a count of the things I need to do today
// tasksDone is a count of the tasks I actually did
// pcDone is the percentage of tasks done
return Json(new {
totalTasks = totalTasks,
tasksDone = tasksDone,
percentDone = pcDone
});
}
AJAX 콜에서는, 다음과 같이 데이터에 액세스 합니다.
.done(function (data) {
// data.totalTasks
// data.tasksDone
// data.percentDone
});
Asp.net은 .net 객체를 json으로 자동 변환하는 데 매우 능숙합니다.웹 메서드로 반환된 List 객체는 json/javascript 배열을 반환해야 합니다.즉, 메서드에서 데이터를 반환할 때 반환 유형을 문자열로 변경하지 마십시오(클라이언트가 예상하는 문자열이기 때문에).웹 메서드에서 .net 배열을 반환하면 JavaScript 배열이 클라이언트에 반환됩니다.실제로는 복잡한 오브젝트에서는 그다지 잘 동작하지 않지만 단순한 어레이 데이터에서는 문제가 없습니다.
물론 클라이언트 측에서 필요한 작업을 수행하는 것은 사용자의 몫입니다.
이런 생각이 들 거예요.
[WebMethod]
public static List GetProducts()
{
var products = context.GetProducts().ToList();
return products;
}
단순한 행/컬러 데이터보다 데이터가 복잡하지 않는 한 커스텀 컨버터를 초기화할 필요가 없습니다.
이걸 써봐, 나한테 딱 맞아.
//
varb = new List<object>();
// Example
varb.Add(new[] { float.Parse(GridView1.Rows[1].Cells[2].Text )});
// JSON + Serializ
public string Json()
{
return (new JavaScriptSerializer()).Serialize(varb);
}
// Jquery SIDE
var datasets = {
"Products": {
label: "Products",
data: <%= getJson() %>
}
언급URL : https://stackoverflow.com/questions/18244696/how-to-return-json-with-asp-net-jquery
'source' 카테고리의 다른 글
Oracle SQL: Select Statement와 함께 시퀀스 삽입 사용 (0) | 2023.03.05 |
---|---|
컴포넌트 클래스의 템플릿 참조 변수에 액세스합니다. (0) | 2023.03.05 |
word press permalinks가 작동하지 않음 - htaccess는 정상으로 보이지만 페이지에 404 오류가 표시됨 (0) | 2023.02.28 |
검증 오류 발생 후 PrimeFaces AJAX를 사용하여 텍스트필드에 입력하려면 어떻게 해야 하나요? (0) | 2023.02.28 |
Next.js: 오류: 반응합니다.Children. 단일 React 요소 하위 항목만 수신해야 합니다. (0) | 2023.02.28 |