Каков канонический способ вернуть объект json при программировании веб-форм asp.net? - PullRequest
1 голос
/ 03 июня 2010

В ASP.Net MVC методы действий могут возвращать объекты json, просто возвращая что-то вроде этого:

JSon ([любой])

Как мне вернуть представление JSon, скажем, List<String> с веб-формами либо через службу, либо через метод в коде страницы aspx? Это кажется невероятно запутанным по сравнению с ASP.Net MVC.

Ответы [ 3 ]

2 голосов
/ 03 июня 2010

Вам следует взглянуть на http://json.codeplex.com/, что позволит вам сделать следующее:

using Newtonsoft.Json;

List<String> strings = new List<String>();
strings.Add("one");
strings.Add("two");
strings.Add("three");

string json = JsonConvert.SerializeObject(strings);
// same as json = "[\"one\",\"two\",\"three\"]";

json = JsonConvert.SerializeObject(new { mystrings = strings });
// same as json = "{\"mystrings\":[\"one\",\"two\",\"three\"]}";
1 голос
/ 03 июня 2010

Вы можете использовать

  1. Веб-службы AJAX ASP.Net (в которых используется JavascriptSerializer как в ASP.net MVC)
  2. или WCF и DataContractSerializer

И некоторые полезные ресурсы по Ajax Application Architecture:

Архитектура приложений AJAX, часть 1
Архитектура приложения AJAX, часть 2

1 голос
/ 03 июня 2010

Это, безусловно, гораздо больше работы, это точно.

С return Json(foo) платформа MVC обрабатывает всю сериализацию.

В ASP.NET Web Forms такая роскошь недоступна.

В этом случае вам нужно использовать DataContractSerializer.

Смотрите здесь: http://msdn.microsoft.com/en-us/library/bb410770.aspx

И, конечно, вам нужно решить, как разместить ваш сервис (WCF, ASMX, ASHX)

Это решение остается за вами - в зависимости от ваших требований.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...