JSON使用WCF服务返回空值

时间:2012-10-02 07:47:50

标签: jquery asp.net wcf datacontractserializer

大家好我是JSON和WCF服务的新手。我试图使用JSON调用wcf服务,我的参数是我的数据合同类之一。

这是我的数据合同类。

namespace Employee.Services.DataContracts
{
    using System;
    using System.Runtime.Serialization;

    [DataContract]
    public class ReqDataContract
    {
[DataMember]
        public long Type { get; set; }
[DataMember]
        public string ID { get; set; }
[DataMember]
        public DateTime? FDate { get; set; }
[DataMember]
public long? UserID { get; set; }
 }
}

这是myWCF服务功能

public void SaveRequ(ReqDataContract request)
        {
            var req=request;
        }

这是接口实现

[OperationContract]
        [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
        [return: MessageParameter(Name = "ReqData")]
void SaveRequ(ReqDataContract request);

.js文件(AJAX调用)

var selection = "{ \"Type\": 55,\"ID\":'test@yahoo.com' ,\"FDate\":" + null + " ,\"UserID\": 'ASDAS'}";
searchData = searchData + (searchData != '' ? "," : "") + selection;
    if (searchData != null) {
        searchData = "[" + searchData + "]";
    }
var searchJSON = jQuery.toJSON(eval("(" + searchData + ")"));
    var strJSON = searchJSON.toString();

    params = '{\"request\":' + strJSON + '}';
    $.ajax({
        async: false, //To perform synchronize operation to get status
        type: "POST",
        url: servicePath + "SaveRequ",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: params,
        processData: true,
        success: function (data) {
          //  alert(data.ReqData);
        },
        error: function (xhr, result, id) { alert(xhr.responseText); }
    });

一切正常但问题是我在请求参数中得到所有值null ...我错过了什么?请帮助我。

1 个答案:

答案 0 :(得分:3)

这是否得到解决?如果没有,为fdate尝试一个有效值而不是NULL,看看是否有效。 JSON.NET可能是将JSON处理为对象的更好的解决方案。