Как вернуть Json из WCF Service? - PullRequest
       16

Как вернуть Json из WCF Service?

9 голосов
/ 02 декабря 2009

У меня есть фрагмент кода службы WCF с поддержкой Ajax шаблона. Что я могу сделать, чтобы вернуть JSon вместо XML? спасибо.

using System; 
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;

[ServiceContract(Namespace = "WCFServiceEight")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class CostService
{
    // Add [WebGet] attribute to use HTTP GET
    [OperationContract]
    [WebGet]
    public double CostOfSandwiches(int quantity)
    {
        return 1.25 * quantity;
    }
}

Ответы [ 2 ]

7 голосов
/ 02 декабря 2009

Вы пробовали:

[WebGet(ResponseFormat= WebMessageFormat.Json)]
1 голос
/ 09 июня 2010

Если вы хотите использовать глагол POST, как в $.ajax({ type: "POST", ...), вам нужно пометить свой метод с помощью [WebInvoke(Method="POST"].

Поскольку вы пометили его как [WebGet] (что эквивалентно [WebInvoke(Method="GET")]), вам следует позвонить в службу, используя глагол GET, например,

$.ajax({ type: "GET", ...) или используйте $.get(url, data, ...) (см. jQuery.get для получения дополнительной информации).

И вам нужно установить для ResponseFormat значение Json, как уже указывалось tomasr.

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