将MVC模型序列化为JSON

时间:2012-05-30 09:35:22

标签: javascript asp.net json asp.net-mvc-3

我正在尝试执行一项非常简单的任务:获取MVC模型,并将其作为JSON发送回服务器。我试过了

 @Html.Raw(Json.Encode(Model));

调试JS时,我看到序列化JSON上的日期对象看起来像:/date (00064321)/,当将序列化的JSON传递给服务器时,服务器端的日期为空。任何人都能理解发生了什么?

1 个答案:

答案 0 :(得分:5)

不是直接对模型进行JSON编码,而是必须创建一个匿名对象,将日期时间属性转换为字符串。

实施例

var meeting = new Meeting 
              { 
                  Name = "Project Updates", 
                  StartDateTime = DateTime.Now 
              }; 

直接传递模型..

@Html.Raw(Json.Encode(meeting))

产生

{"Name":"Project Updates","StartDateTime":"\/Date(1338381576306)\/"} 

@Html.Raw(Json.Encode(new { 
                  Name = meeting.Name, 
                   StartDateTime = meeting.StartDateTime.ToString()
}))

产生

{"Name":"Project Updates","StartDateTime":"5/30/2012 6:09:36 PM"} 

正如所料。