Asp.net mvc 4 ASP MVC 4 JsonResult如何使用ISO 8601日期?

Asp.net mvc 4 ASP MVC 4 JsonResult如何使用ISO 8601日期?,asp.net-mvc-4,Asp.net Mvc 4,我刚刚安装了ASP MVC 4,我的JSON日期仍然以旧格式返回{“timestamp”:“\/Date(1348070400000)\/”} 我想他们应该以2012-02-18T00:54:06.8447642Z的格式回来,而我什么也不做 注意:JSON.NET现在是ASP.NET Web API不可分割的一部分,因此您可以 只要我们把它从盒子里拿出来 我的控制器看起来像这样 public JsonResult Test() { return Json(new {timestamp =

我刚刚安装了ASP MVC 4,我的JSON日期仍然以旧格式返回
{“timestamp”:“\/Date(1348070400000)\/”}

我想他们应该以
2012-02-18T00:54:06.8447642Z
的格式回来,而我什么也不做

注意:JSON.NET现在是ASP.NET Web API不可分割的一部分,因此您可以 只要我们把它从盒子里拿出来

我的控制器看起来像这样

public JsonResult Test()
{
    return Json(new {timestamp = DateTime.Now()}, JsonRequestBehavior.AllowGet);
}
我怎样才能让它工作?我是否需要在Global.asax.cs或Web.config中进行更改

我的印象是,他们应该马上回来 格式2012-02-18T00:54:06.8447642Z,我什么也不做

这仅适用于ASP.NET Web API(ApiControllers)。但是返回JsonResults的标准ASP.NET MVC控制器操作仍然使用
JavaScriptSerializer
。因此,如果您想使用ISO8601日期,可以通过编写一个。只需将适当的转换器添加到序列化程序使用的设置中:

SerializerSettings.Converters.Add(new IsoDateTimeConverter());

您可能会问,为什么他们没有为标准控制器实现JSON.NET。我想这是出于兼容性的原因,因为这将是一个重要的突破性变化。但是我可能会让JSON.NET成为那些升级现有应用程序的默认序列化程序,并提供一个回退选项。

Hi,我有一个ActionResult返回一个带有模型的PartialView,我希望使用JsonNetResult类对模型进行序列化。。。有线索吗?感谢您的帮助,如果您想返回JSON,那么您应该返回一个自定义ActionResult,它使用JSON.NET作为序列化程序,而不是从您的操作返回PartialView,例如JsonNetResult。