2016-11-02 1 views
0

古いアプリケーションを移行していて、特定のWeb API 2メソッドが次のような日付を返す必要があります。/Date(46546)/ ISO 8601形式で:2016-10-31T07:22:57.1153868-05:00Web Apiメソッドに次のような形式で日付を返すようにする方法/ Date(46546)/

マイウェブ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 }); 
    } 
} 

答えて

1

私の知る限りでは、新しいWebAPIのは、JSONの規格に準拠しており、デフォルトでシリアライザとしてJSON.NETを使用し、したがって、JSON標準に準拠していない要求したフォーマットをシリアル化することはできません。

旧WebAPIは、Microsoft独自のDataContractJsonSerializerを使用しました。これは非標準準拠の形式のみをサポートしています。古いシリアライザライブラリを使用可能なシリアライザのリストの最後に

まず、you have to add a serializer to your WebAPI projectを、:戻ってそのシリアライザを取得する

あなたはcan select that very serializer for a certain controllerです。

関連する問題