C# 使用时间戳时自动反序列化JSON数据
我需要以datetime格式将javascript时间戳带到服务器。我的javascript对象包含一个带有日期戳的属性C# 使用时间戳时自动反序列化JSON数据,c#,ajax,asp.net-mvc,json.net,C#,Ajax,Asp.net Mvc,Json.net,我需要以datetime格式将javascript时间戳带到服务器。我的javascript对象包含一个带有日期戳的属性 ex:{“fromDate”:“新日期(1427826600000)”} 但是服务器端的模型将fromDate设置为DateTime。我需要在服务器端将其反序列化为DateTime,因为我使用的是不同的区域性 下面是代码 Ajax调用 $.ajax({ type: "POST", url: "Report/Update", dataType: "jso
ex:{“fromDate”:“新日期(1427826600000)”}
但是服务器端的模型将fromDate
设置为DateTime
。我需要在服务器端将其反序列化为DateTime,因为我使用的是不同的区域性
下面是代码
Ajax调用
$.ajax({
type: "POST",
url: "Report/Update",
dataType: "json",
contentType: 'application/json',
data: JSON.stringify(model),
public class Report
{
[JsonConverter(typeof (JavaScriptDateTimeConverter))]
public DateTime FromDate { get; set; }
[JsonConverter(typeof (JavaScriptDateTimeConverter))]
public DateTime ToDate { get; set; }
}
型号
$.ajax({
type: "POST",
url: "Report/Update",
dataType: "json",
contentType: 'application/json',
data: JSON.stringify(model),
public class Report
{
[JsonConverter(typeof (JavaScriptDateTimeConverter))]
public DateTime FromDate { get; set; }
[JsonConverter(typeof (JavaScriptDateTimeConverter))]
public DateTime ToDate { get; set; }
}
控制器
[HttpPost]
public JsonResult UpdateReport(Report data)
{
...
}
我无法执行此操作,您能帮我吗?如果
aMs
包含JS date,请使用此代码将其转换为C#DateTime:
new DateTime(aMs * 10000 + 621355968000000000L);
为此,我们需要添加一个新的int属性。我尽量避免这样。我们不能使用jsonserializer实现这一点吗?事实上,您的属性已经附加了JavaScriptDateTimeConverter,它应该自动执行转换,而无需任何进一步的处理。为什么它对您不起作用?同样在您的代码中,例如:{“fromDate”:“new Date(1427826600000)”}-它不应该是:{“fromDate”:1427826600000}因为我正在使用ajax调用该方法,所以数据不会自动反序列化,无论您想要什么,我都可以这样做。但是为了支持本地化,它必须是时间戳