2016-12-25 82 views
0

我在c#中開發了一個MVC web應用程序,並且使用Typescript前端。 我有一個方法進入控制器,接收帶有數據模型的HttpPost請求,這個數據模型是用typelite自動生成到打字稿類中的。使用ajax發送打印稿日期

在我的請求數據模型中有一個日期時間字段,當我發送請求到後端時,數據時間字段被序列化爲以下格式的字符串:「Sun + Dec + 25 + 2016 + 11:29:33 + GMT + 0100 +(ora + solare + Europa + occidentale)「 我喜歡這個文件被serilize到UTC datetime字符串。

我的打字稿代碼發送請求:

$.ajax({ 
     method: callingMethod, 
     url: urlToCall, 
     data: *dataValue, 
     beforeSend: function() { 
      self.BeforeAsyncAction(); 
     }, 
    }) 
    .done(callbackDone) 
    .fail(callbackFail) 
    .always(self.CompleteAsyncAction); 
} 

dataValue與此接口的類:我必須序列化到UTC日期時間

export class FileServiceModel extends Gedoc.WebApplication.ServiceModels.BaseServiceModel { 
    Allegato: Gedoc.WebApplication.ServiceModels.FileStreamServiceModel; 
    Attributi: Gedoc.WebApplication.ServiceModels.AttributoServiceModel[]; 
    Descrizione: string; 
    DimensioneByte: number; 
    *DtIn: Date; 
    *DtRegistrazione: Date; 
    *DtUp: Date; 
    Id: number; 
    Tags: string; 
    Titolo: string; 
} 
  • 領域。

如何最好的方式來序列自動這一領域

感謝認爲

回答

0

JavaScript的Date對象有一個toUTCString方法,所以:

let d = new Date(); 
console.log(d); // Sun Dec 25 2016 13:36:02 GMT+0200 (IST) 
console.log(d.toUTCString()); // Sun, 25 Dec 2016 11:36:02 GMT 

在你的情況,你可以做一些事情如:

function normalizeDate(data: FileServiceModel) { 
    let copy = Object.assign({}, data); 
    copy.DtIn = data.DtIn.toUTCString(); 
    copy.DtRegistrazione = data.DtRegistrazione.toUTCString(); 
    copy.DtUp = data.DtUp.toUTCString(); 

    return copy; 
} 

$.ajax({ 
     method: callingMethod, 
     url: urlToCall, 
     data: normalizeDate(dataValue), 
     beforeSend: function() { 
      self.BeforeAsyncAction(); 
     }, 
    }) 
     .done(callbackDone) 
     .fail(callbackFail) 
     .always(self.CompleteAsyncAction); 
}