У меня возникла проблема с публикацией данных из сообщения jquery ajax в метод веб-API asp.net. Свойства даты отображаются в веб-консоли в окружении двух двойных кавычек, затем сбрасываются, а логические свойства устанавливаются равными нулю.
Javascript:
self.startTime = ko.observable(startTime);
self.startTimeDate = ko.computed({
read: function() {
return moment(self.startTime()).format("MM-DD-YYYY HH:MM:ss");
},
write: function(value){
self.startTime(moment(value).format("MM-DD-YYYY HH:MM:ss"));
}
});
self.endTime = ko.observable(endTime);
self.endTimeDate = ko.computed({
read: function () {
return moment(self.endTime()).format("MM-DD-YYYY HH:MM:ss");
},
write: function (value) {
self.endTime(moment(value).format("MM-DD-YYYY HH:MM:ss"));
}
});
self.includeDeviceAddedToInventory = ko.observable(true);
var model = {
auditLogType: ko.toJSON(self.auditLogType),
id: ko.toJSON(self.auditLogId),
entriesPerPage: ko.toJSON(self.entriesPerPage),
pageNumber: ko.toJSON(self.pageNumber),
startTime: ko.toJSON(self.startTimeDate),
endTime: ko.toJSON(self.endTimeDate),
includeDeviceAddedToInventory: ko.toJSON(self.includeDeviceAddedToInventory)
...
$.post("api/AuditLog", { filterInfo: model })
Консоль javascript показывает объекты как:
entryPerPage: "0", pageNumber: "0", endTime: ""10-01-2014 06:10:00", startTime: ""10-01-2014 06:10:00"", includeDeviceAddedToInventory: "true "
Однако отладчик .net показывает объекты как: entryPerPage: 0, pageNumber: 0, endTime: {1/1/0001 00:00:00}, startTime: {1/1/0001 00:00:00}, нулевой
ASP.NET
public class PostModel
{
public int EntriesPerPage { get; set; }
public int PageNumber { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public string IncludeDeviceAddedToInventory { get; set; }
}
public HttpResponseMessage Post(PostModel filterInfo)
{
Я попытался сериализовать с помощью атрибута веб-API newtonsoft, который не сработал. Хотя синтаксис может быть неправильным. Может ли кто-нибудь опубликовать образцы или помочь?
Спасибо.