Возврат JSON возражает от страницы ASP.NET

В моей конкретной ситуации у меня есть несколько решений моей проблемы. Я хочу узнать, какой более выполним. В этом случае я могу также достигнуть своей цели путем возврата объекта JSON из моего серверного кода; однако, я не знаю, как это сделано и каково лучший способ сделать это.

Прежде всего мне не нужна полная aspx страница, как мне только нужен ответ, возвращенный из кода. Так, я использую веб-сервисы, обработчик, или там какой-либо другой особенный метод состоит в том, чтобы сделать это?

Действительно ли это решение выполнимо? Сделайте я создаю строку JSON с помощью StringBuilder класс и вводит ту строку в цель aspx страница? Есть ли какие-либо меры предосторожности или вещи, о которых я должен знать?

Я ценю Ваши идеи.

С уважением,

Kemal

------------ОБНОВЛЕНИЕ!------------

Предположим, что у меня есть объект JSON на моей userlist.aspx странице, которую затем я использую с jQuery...

{"menu": {
  "id": "color1",
  "value": "color",
  "popup": {
    "menuitem": [
      {"value": "Red"},
      {"value": "Green"},
      {"value": "Yellow"}
    ]
  }
}} // example taken from the json.org/example page

Теперь, когда я хочу добавить новые пункты меню от своей aspx страницы, что я делаю... Я думаю этот способ, которым мой вопрос более конкретен...

Позволяет предполагают, что я создаю новую строку в своем коде aspx, как таковом "{"value": "Blue"}. Как я ввожу это в уже существующий itemlist на целевой странице? Или разве это не корректный подход к этому виду ситуации? В противном случае, как еще это может быть достигнуто?

Кроме того, если я хотел запустить событие jQuery, когда новый объект добавляется к этому списку, как это достигается?

------------ОБНОВИТЕ 2 26 августа 2015------------

К тому времени, когда я задал этот вопрос, способ, которым я приближался к проблеме, был в другом аспекте. Я являюсь теперь более опытным в предмете и могу с удовольствием принять наиболее проголосовавший ответ, так как подход к этому вопросу ясно не должен включать уже существующий JSON и производить новый из кода как @DavGarcia также предлагает.

64
задан reformed 24 July 2016 в 19:52
поделиться

3 ответа

В Page_Load вы захотите очистить нормальный вывод и написать свой собственный, например:

string json = "{\"name\":\"Joe\"}";
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
Response.End();

Чтобы преобразовать объект C # в JSON, вы можете используйте такую ​​библиотеку, как Json.NET .

Вместо того, чтобы заставлять вашу страницу .aspx выводить JSON, рассмотрите возможность использования веб-службы (asmx) или WCF, которые могут выводить JSON.

123
ответ дан 24 November 2019 в 15:43
поделиться
13
ответ дан 24 November 2019 в 15:43
поделиться

без проблем сделать это с помощью asp .... наиболее естественно сделать это с помощью MVC, но это можно сделать и со стандартным asp как хорошо.

В MVC-фреймворке есть всевозможные вспомогательные классы для JSON, если вы можете, я бы посоветовал заняться некоторой любовью к MVC, если нет, вы, вероятно, легко можете просто получить вспомогательные классы JSON, используемые MVC, и использовать их. в контексте asp.net.

редактировать:

вот пример того, как вернуть данные JSON с помощью MVC. Это будет в вашем классе контроллера. Это готовая функциональность с MVC - когда вы создаете новый проект MVC, этот материал создается автоматически, поэтому в нем нет ничего особенного. Единственное, что я делаю, - это возвращаю actionResult, который является JSON. Метод JSON, который я вызываю, является методом класса Controller. Это все очень простые, стандартные MVC вещи:

public ActionResult GetData()
{
    var data = new { Name="kevin", Age=40 };
    return Json(data, JsonRequestBehavior.AllowGet);
}

Эти возвращаемые данные могут быть вызваны через JQuery как вызов ajax, таким образом:

$.get("/Reader/GetData/", function(data) { someJavacriptMethodOnData(data); });
16
ответ дан 24 November 2019 в 15:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: