C# 为什么不';我的JSON值是否出现在我的WCF操作中?
从JQuery代码获取WCF操作的值时遇到问题。我有一个具有以下声明的WCF操作:C# 为什么不';我的JSON值是否出现在我的WCF操作中?,c#,wcf,C#,Wcf,从JQuery代码获取WCF操作的值时遇到问题。我有一个具有以下声明的WCF操作: [OperationContract] [WebGet(BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] public ResultList<MyResult> FindResults(string
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public ResultList<MyResult> FindResults(string latitude, string longitude)
{
// latitude and longitude are always "0" here.
}
当我查看Fiddler时,我收到了预期的200状态码。请求标头显示:
GET /services/myService.svc/FindResults?{"latitude":33.041599,"longitude":-119.298798}
我做错了什么?为什么操作代码中纬度和经度始终为0?谢谢大家! 如果它们是字符串,为什么json不加引号
"latitude":33.041599,"longitude":-119.298798
相对于
"latitude":"33.041599","longitude":"-119.298798"
您可以将json更改为将值括在引号中,或者将操作更改为接受
double
s?GET
请求,这些请求需要?Param=Value
您可以将OperationContract
切换到WebInvoke
,将JS服务调用切换到POST
或者,如果您想继续使用
GET
,您可以删除stringify
调用,jQuery应该注意正确设置GET
参数。当我将值括在引号中时,操作代码中的纬度和经度参数将变为null。
"latitude":"33.041599","longitude":"-119.298798"