我正在使用模型进行ajax发布,一切正常,除了一个日期时间属性,我可以在浏览器的网络选项卡中看到以下值在请求有效负载中传递,但是当我将调试器放在服务器端操作方法时,该日期时间属性显示为null。
请求有效负载中的值
DevelopmentPlan_CompletionDate:"/Date(1491796800000)/"
模型属性
public DateTime? DevelopmentPlan_CompletionDate { get; set; }
似乎/Date(1491796800000)/
格式正在创建问题,我正在从后端Sharepoint列表中读取DateTime值,值为4/18/2017 4:00:00 AM
。现在在客户端我正在这样做
var dataModel = @Html.Raw(Json.Encode(Model));
sessionStorage.setItem('DataModel', JSON.stringify(dataModel));
完成上述操作后,我的datetime属性更改为"/Date(1491796800000)/"
,这在使用此值执行ajax发布时会导致问题
答案 0 :(得分:0)
因为Json.Encode()
将DateTime
转换为此格式/Date(1491796800000)/
,您应该使用Newtonsoft
转换为Json
var dataModel = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model))
这会将DateTime
转换为2017-04-11T08:55:24.659262+05:00
这种DateTime
可以理解的格式,因此它会转换为Json
格式,因此无需使用JSON.stringify
转换为Json
sessionStorage.setItem('DataModel', dataModel);