Microsoft使用JavascriptSerializer对ASP.NET
MVC数据进行序列化/反序列化。如果使用
/Date(utcDate)/格式作为
Date数据类型。尝试使用
'"\/Date(' + myStory.Deadline.getTime() + ')\/"'要么
var d = myStory.Deadline;var dateForMS = '"\/Date(' + Date.UTC (d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()) + ')\/"'您也可以只使用
Sys.Serialization.JavascriptSerializerfrom
MicrosoftAjax.js进行序列化
Deadline或任何其他
Date类型。
更新 :也许你应该用
'/Date('和')/'代替
'"\/Date('和')\/"'。一切取决于您将在何处插入字符串。
更新2 :现在我拥有了!ASP.NET
MVC主要用于每个Ajax的发布表单字段。在服务器端,将仅使用
Parse每种类型的方法将发布的参数转换为该类型。因此,可以使用DateTime.Parse支持的任何字符串格式。例如,您可以使用ISO 8601格式,例如“
2010-08-29T13:15:00.0000000Z”。为此,可以在现代浏览器(firefox,chrome)中使用
toISOString()功能。为了更加独立,可以实现数据转换,如http://williamsportwebdeveloper.com/cgi/wp/?p=503中所述:
var d = new Date($('#story-deadline').val())//var d = new Date(); // get the date. Here we use just Now.var dAsISOString;if ($.isFunction(d.toISOString)) { //alert("internal toISOString are used!"); dAsISOString = d.toISOString();}else { dAsISOString = d.getUTCFullYear() + '-' + padzero(d.getUTCMonth() + 1) + '-' + padzero(d.getUTCDate()) + 'T' + padzero(d.getUTCHours()) + ':' + padzero(d.getUTCMinutes()) + ':' + padzero(d.getUTCSeconds())+'.'+ pad2zeros(d.getUTCMilliseconds()) + 'Z';}var myStory = { Summary: 'Test description', Size: 8, Dedline: dAsISOString };$.ajax({ url: '/Project/1/AddStory', data: { Summary: myStory.Summary, Size: myStory.Size, Dedline: myStory.Dedline }, dataType: 'json', // ...});


