【发布时间】:2015-07-27 10:01:24
【问题描述】:
我有一个 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(会员资格) = "[{"ID":"53","StartDateString":"23/07/2015","EndDateString":"28/07/2015"}]"
【问题讨论】:
标签: javascript c# jquery wcf