我正在迁移一个旧应用程序,我需要一个特定的web api 2方法返回如下日期:/Date(46546)/
而不是ISO 8601格式:2016-10-31T07:22:57.1153868-05:00
我的网络API方法如下:
[Route("GetListData/{jtStartIndex:int=0}/{jtPageSize:int=0}/{jtSorting?}")]
[HttpPost]
public HttpResponseMessage GetListData(int jtStartIndex, int jtPageSize, string jtSorting)
{
try
{
var dataList = DataContainer.Instance.Data;
//HERE dataList is a collection of a custom model, a model that have properties of datetime type.
return this.Request.CreateResponse(HttpStatusCode.OK,
new { Result = "OK", Records = dataList, TotalRecordCount = dataList.Count });
}
catch (Exception ex)
{
return this.Request.CreateResponse(
HttpStatusCode.InternalServerError,
new { Result = "ERROR", Message = ex.Message });
}
}
答案 0 :(得分:1)
据我所知,较新的WebAPI默认使用JSON.NET作为序列化程序,它遵循JSON标准,因此无法序列化您请求的格式,这不符合JSON标准。
旧的WebAPI使用了Microsoft自己的DataContractJsonSerializer,它只支持非标准兼容的格式。
回到序列化器:
首先,you have to add a serializer to your WebAPI project位于可用序列化程序列表的末尾,它使用旧的序列化程序库。
然后你can select that very serializer for a certain controller。