【发布时间】:2014-05-23 14:03:39
【问题描述】:
我正在寻找一种无需在客户端安装另一个库的情况下将 javascript 日期传递给 .NET Web api 控制器的方法...
我希望将 javascript 日期反序列化为 .NET DateTime。
var date = new Date();
post({currentDate: date.toISOString()});
作为 DateTime.Min 到达服务器(表明它无法反序列化)。
这是通过网络发送内容的示例,但 ApiController 无法创建具有正确日期的 DateTime...
请求:
{"Date":"2014-04-16T17:03:03.383Z"}
C#:
[Serializable]
public class MyObj
{
public DateTime Date { get; set; }
}
public class MyController : ApiController
{
public HttpResponseMessage Post(MyObj dd)
{
// dd's Date property equals DateTime.Min rather than the correct date...
return null;
}
}
}
【问题讨论】:
-
你确定它被正确传递了吗? Javascript 的 Date.toISOString() 应该返回一个格式为“2014-04-10T03:56:12.238Z”的字符串,这是 C# DateTime.Parse 应该能够处理的格式。
-
您在寻找 ISO 时间戳吗?
-
我确信时间戳将通过:2014-04-16T17:03:03.383Z 但没有正确解析为 DateTime 使用 ApiController 的方法接受带有 DateTime 的对象。
标签: c# javascript json datetime deserialization