Json.Net IsoDateTimeConverter不工作

Cat*_*lin 4 asp.net asp.net-mvc json.net asp.net-mvc-4

我有一个用asp.net mvc 4制作的web应用程序

在Global.asax中,我补充说 IsoDateTimeConverter

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();

    GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
        new IsoDateTimeConverter { DateTimeFormat = "dd-MM-yyyy hh:mm" });
}
Run Code Online (Sandbox Code Playgroud)

我有一个ActionResult

public ActionResult GetDate()
{
    DateTime dateTime = DateTime.Now;
    return Json(dateTime, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

但是,这个actionResult返回这个:

"\/Date(1365060823129)\/"
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

tpe*_*zek 6

好吧,我相信你对最近一直在使用的所有"不精确"的命名感到有些困惑.的JsonFormatter(和一般的格式化)被使用的ASP.NET Web API.

您没有使用ASP.NET Web API,您正在使用ASP.NET MVC 4(这些是完全分离的技术).

ASP.NET MVC 4的序列化逻辑里面仍然完成JsonResultJavaScriptSerializer,格式化这里不适用.

如果您想将Json.NET(及其IsoDateTimeConverter)与ASP.NET MVC 4一起使用,您仍需要ActionResult按照此处的描述创建自己的.