栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

传递给MVC Action的JSON Date参数始终为null

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

传递给MVC Action的JSON Date参数始终为null

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.JavascriptSerializer
from
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',    // ...});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379956.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号