В моей конкретной ситуации у меня есть несколько решений моей проблемы. Я хочу узнать, какой более выполним. В этом случае я могу также достигнуть своей цели путем возврата объекта 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
также предлагает.
В 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.
вот неплохие решения моей проблемы:
также обязательно прочтите это: http://encosia.com/2009/02/10/a- нарушение-изменение-между-версиями-aspnet-ajax /
без проблем сделать это с помощью 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); });