JSON и ASP.NET MVC - PullRequest
       30

JSON и ASP.NET MVC

15 голосов
/ 19 сентября 2008

Как вы возвращаете сериализованный объект JSON на клиентскую сторону, используя ASP.NET MVC через вызов AJAX?

Ответы [ 5 ]

24 голосов
/ 19 сентября 2008

Из контроллера вы можете просто вернуть JsonResult:

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

Форма вызова Ajax будет, конечно, зависеть от того, какую библиотеку вы используете. Используя jQuery это было бы что-то вроде:

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

, где callbackFunction принимает параметр, который является данными из запроса XHR.

10 голосов
/ 19 сентября 2008

В зависимости от ваших предпочтений синтаксиса, работает также следующее:

public ActionResult MyAction()
{
    return Json(new {Data = myObject});
}
2 голосов
/ 08 августа 2017

Это небольшой блок кода для простого понимания того, как мы можем использовать JsonResults в контроллерах MVC.

   public JsonResult ASD()
    {
    string aaa = "Hi There is a sample Json";
    return Json(aaa);
    }
1 голос
/ 23 июня 2018

Вы также можете 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) {

    }
});
0 голосов
/ 04 июня 2014

Если вам нужно отправить JSON в ответ на GET, вам нужно явно разрешить поведение, используя JsonRequestBehavior.AllowGet.

public JsonResult Foo()
{
    return Json("Secrets", JsonRequestBehavior.AllowGet);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...