格式化字符串和日期时间?

时间:2015-07-27 10:01:25

标签: javascript c# jquery wcf

我有一个WCF类,

    [DataContract]
    public class Membership
    {
        [DataMember]
        public int ID;

        public DateTime? StartDate{ get; set; }
        [DataMember(EmitDefaultValue = false, Name = "StartDate")]
        public string StartDateString
        {
            get
            {
                if (this.StartDate.HasValue)
                    return this.StartDate.Value.ToString("dd/MM/yyyy HH:mm:ss");
                else
                    return null;
            }
            set
            {
                this.StartDate = Utils.ToNullableDateTime(this.StartDateString);
            }
        }

        public DateTime? EndDate { get; set; }
        [DataMember(EmitDefaultValue = false, Name = "EndDate")]
        public string EndDateString
        {
            get
            {
                if (this.EndDate.HasValue)
                    return this.EndDate.Value.ToString("dd/MM/yyyy HH:mm:ss");
                else
                    return null;
            }
            set
            {
                this.EndDate = Utils.ToNullableDateTime(this.EndDateString);
            }
        }


        public Membership() 
        {
                    //do something
        }
    }
}

当我在C#中填充此对象并将其发送到JavaScript时,它会发送正确的值,但是当我在WCF方法中调用post查询时,它会给我StartDate,StartDateString,EndDate和EndDateString,

var memberships = [];
memberships.push({
    ID: id,
    StartDateString: $("#" + id + "governmentsddatepicker").val(),
    EndDateString: $("#" + id + "governmenteddatepicker").val()
});

在调试器中我从jQuery选择器获得正确的值,它只是在WCF方法中,我得到null,

 $.ajax({
        url: url,
        type: "POST",
        data: '{ "Memberships": ' + JSON.stringify(memberships) + '}',
        contentType: "application/json; charset=utf-8"
    })

在WCF中,

    public void UpdateMemberships(Membership[] memberships)
    {
        //do some work 
       // GETTING all dates here null
    }

Rest ID和其他数据名单(我删除以简短此问题)正常工作。

除此之外的其他错误 - 我想要

我想控制我将DateTime返回给客户端的格式,但我也希望控制从客户端接收DateTime的方式并相应地填充我的日期字符串

修改

这是JS在stringy函数后发布的内容,

  

JSON.stringify(membership)=   " [{" ID":" 53"" StartDateString":" 23/07/2015"" EndDateString":" 28/07/2015"}]"

1 个答案:

答案 0 :(得分:0)

这可能是一个愚蠢的答案,但为什么你在数据后使用'':?

您使用:

 data: '{ "Memberships": ' + JSON.stringify(memberships) + '}',

但我认为你必须使用

data: { "Memberships":  JSON.stringify(memberships)},