最近刚接触web api,想着把以前做webservice时需要注意的坑都给避免掉,于是开始查找如何格式化时间,避免出现yyyy-MM-ddTHH:mm:ss问题,特此记录。
解决办法就是把Json方法重写。
public class BaseController : ApiController
{
public new JsonResult<T> Json<T>(T content)
{
var settings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
settings.Converters.Add(timeConverter);
settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
return Json<T>(content, settings);
}
}
我是把此方法写在一个基控制器里,然后所有控制器都继承此基控制器。
这样的话每创建一个控制器,改一次继承即可,否则要在每个控制器里都重写此方法了。
注意,这里需要引用命名空间System.Web.Http.Results、Newtonsoft.Json、Newtonsoft.Json.Converters。