我在下面的模板中启用了一个支持Ajax的WCF服务。我该怎么做才能让它返回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;
}
}
答案 0 :(得分:7)
你试过了吗?
[WebGet(ResponseFormat= WebMessageFormat.Json)]
答案 1 :(得分:1)
如果您想使用$.ajax({ type: "POST", ...)
中的POST动词,则需要使用[WebInvoke(Method="POST"]
标记方法。
由于您使用[WebGet]
标记了它(相当于[WebInvoke(Method="GET")]
),您应该使用GET动词来调用服务,例如:
$.ajax({ type: "GET", ...)
或使用$.get(url, data, ...)
(有关详情,请参阅jQuery.get)。
你需要将ResponseFormat设置为Json,正如tomasr
已经指出的那样。