格式化字符串和日期时间
本文关键字:时间 日期 字符串 格式化 | 更新日期: 2023-09-27 18:04:45
我有一个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和其他数据成员(我删除了这个问题)工作正常。
除了上面的错误-我想要
我想控制格式的方式,我返回我的日期时间到客户端,但我也想控制我从客户端接收日期时间的方式,并相应地填充我的日期字符串
编辑
这是JS在字符串函数后发布的内容,
JSON.stringify(会员)="[{" ID ":"53","StartDateString":"23/07/2015"、"EndDateString":"28/07/2015"}]"
这可能是一个愚蠢的答案,但是为什么在data:之后使用''
?
使用:
data: '{ "Memberships": ' + JSON.stringify(memberships) + '}',
但是我认为你必须使用
data: { "Memberships": JSON.stringify(memberships)},