Asp.net mvc 4 使用从控制器操作返回的JSON.NET日期格式

Asp.net mvc 4 使用从控制器操作返回的JSON.NET日期格式,asp.net-mvc-4,json.net,Asp.net Mvc 4,Json.net,在我的MVC4项目中,我有一个控制器操作,如下所示: public ActionResult GetJson() { var serialized = JsonConvert.SerializeObject(DateTime.Now); return Json(DateTime.Now, JsonRequestBehavior.AllowGet); } 对浏览器的响应采用旧的ASP.NET格式: “/日期(1358987787691)/” 但是,我知道MVC4默认使用json.

在我的MVC4项目中,我有一个控制器操作,如下所示:

public ActionResult GetJson()
{
    var serialized = JsonConvert.SerializeObject(DateTime.Now);
    return Json(DateTime.Now, JsonRequestBehavior.AllowGet);
}
对浏览器的响应采用旧的ASP.NET格式:

“/日期(1358987787691)/”

但是,我知道MVC4默认使用json.net,json.net使用ISO8601格式表示日期

在上面的代码中,序列化变量包含(我想要的):

“\“2013-01-24T13:39:12.7182079+13:00”

为什么returnJSON(DateTime.Now)没有(看起来)使用Json.net

我还尝试在我的global.asx中添加以下行:

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = false;

但是没有用。

您可以在controller factory中进行一些更改并创建您的控制器,该控制器继承自标准控制器,但使用自定义json格式化程序。

似乎我误解了文档-json.net是仅用于web API的默认json格式化程序。答案如下: