문제

AJAX 호출을 통해 ASP.NET MVC를 사용하여 직렬화된 JSON 개체를 클라이언트 측에 어떻게 반환합니까?

도움이 되었습니까?

해결책

컨트롤러에서 JsonResult를 반환할 수 있습니다.

public ActionResult MyAction()
{
    ... // Populate myObject
    return new JsonResult{ Data = myObject };
}

물론 Ajax 호출 형식은 사용 중인 라이브러리에 따라 달라집니다.jQuery를 사용하면 다음과 같습니다.

$.getJSON("/controllerName/MyAction", callbackFunction);

어디에 callbackFunction XHR 요청의 데이터인 매개변수를 사용합니다.

다른 팁

구문 기본 설정에 따라 다음도 작동합니다.

public ActionResult MyAction()
{
    return Json(new {Data = myObject});
}

이것은 MVC 컨트롤러에서 JsonResults를 사용하는 방법을 이해하기 위한 작은 코드 블록입니다.

   public JsonResult ASD()
    {
    string aaa = "Hi There is a sample Json";
    return Json(aaa);
    }

System.Web.Script.Serialization도 가능합니다.아래

using System.Web.Script.Serialization;

public ActionResult MyAction(string myParam)
{

    return  new JavaScriptSerializer().Serialize(myObject);
}

아약스

$.ajax({
    type: 'POST',
    url: '@Url.Action("MyAction","MyMethod")',
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ "myParam": "your data" }),
    success: function(data)
    {
        console.log(data)
    },
    error: function (request, status, error) {

    }
});

GET에 대한 응답으로 JSON을 보내야 하는 경우 JsonRequestBehavior.AllowGet을 사용하여 해당 동작을 명시적으로 허용해야 합니다.

public JsonResult Foo()
{
    return Json("Secrets", JsonRequestBehavior.AllowGet);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top