Интеграция jQuery AJAX с .NET - PullRequest
       4

Интеграция jQuery AJAX с .NET

3 голосов
/ 05 августа 2011

Я хочу сделать ajax-вызов из jQuery на мой сервер.По сути, я хочу, чтобы запрос отправлялся как POST с типом содержимого x-www-form-urlencoded и соответствующими параметрами (параметр1 = X¶mter2 = Y¶meter3 = Z).Я хочу, чтобы ответ был JSON.

Серверная среда .NET.Я экспериментировал с тремя методами, описанными ниже, но не смог заставить его работать правильно.

ASPX - Используя aspx для обработки и возврата JSON, я могу получить егоработать, но мне нужно сериализовать JSON самостоятельно.Это возможно, но я надеялся на что-то более удобное.Кроме того, поправьте меня, если я ошибаюсь, но я бы предположил, что на страницах aspx много дополнительных накладных расходов, поскольку ожидается, что они будут делать больше, чем просто выполнять метод и возвращать простой JSON.

ASMX и WCF - С asmx и WCF я могу заставить его возвращать JSON, но только если я отправляю JSON в запросе.

Какая серверная «среда» лучше всего использоватьдля этого типа запроса / ответа?.aspx, .asmx или WCF?Так как я смог по крайней мере заставить aspx работать для этого, это даже подходящий подход?

Я видел другие продукты, которые предоставляют API через веб-сервис и используютФормат запроса строки имя / значение с типом ответа JSON, но это кажется трудным делом в .NET.

Ответы [ 3 ]

1 голос
/ 05 августа 2011

Вы правы, что ASPX-страницы приносят дополнительные издержки. Даже если вы вообще не используете платформу WebForms, запросы к страницам ASPX все равно должны фильтроваться в течение всего жизненного цикла страницы.

Если вы предпочитаете такой низкоуровневый подход, считывая параметры QueryString и отвечая с помощью сериализованного вручную JSON, ASHX HttpHandler, вероятно, будет лучшим решением.

Лично я предпочитаю услуги ASMX. Отправка параметров JSON не очень сложна (и вы, вероятно, в конечном итоге сделаете это, как только начнете посылать вложенные объекты или коллекции, что является беспорядком с помощью простых пар ключ / значение), и хорошо избежать ненужной церемонии десериализация и сериализация во время каждого запроса.

Люди скажут вам, что WCF является правильным решением, поскольку он более новый, но WCF в .NET 4 в настоящее время не очень подходит для использования jQuery. Он не так гибок при работе с типами DateTime и Enum, а также имеет громоздкую сериализацию словаря. Новый WCF WCF Web Api решает эти проблемы, хотя, если вы хотите попробовать что-то немного впереди.

1 голос
/ 05 августа 2011

Я использовал.

  • .aspx -> именно так, как вы делаете
  • .ashx -> аналогично .aspx за исключением меньших накладных расходов в жизненном цикле страницы.
  • .asmx & wcf -> что не так с передачей JSON в запросе?
  • MVC -> вернуть JsonResult. Это мой любимый, когда я не делаю весь API (для этого я использую WCF), но вместо этого мне просто нужен один или два запроса вернуть JSON. Это, конечно, предполагает, что весь сайт написано с использованием MVC, иначе было бы излишне устанавливать рамки всего за несколько звонков.
0 голосов
/ 05 августа 2011

Если вы в порядке, выбирая маршрут WCF, могу предложить вам посмотреть на проект WCF WebAPI от Microsoft.Этот проект находится на вершине WCF и предоставляет некоторые тонкости и упрощения, когда речь идет о клиентском доступе (код .NET или jQuery Ajax). Здесь - это пошаговое руководство по использованию jQuery для POST-данных, кодированных в форме.Существуют и другие пошаговые руководства, демонстрирующие и другие связанные с ними задачи.

Эти службы могут быть размещены, как и любая другая служба WCF, и даже размещены прямо в том же проекте ASP.NET, что и остальная часть вашего сайта.

В настоящее время проект находится на ранней стадии разработки и имеет некоторые ограничения "Go-Live", но в зависимости от потребностей вашего проекта это может сработать замечательно, оно имеет для нас.

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