Microsoft использует JavaScriptSerializer для сериализации / извлечения данных из ASP.NET MVC.Если используется тип /Date(utcDate)/
для типа данных Date
.Попробуйте использовать
'"\\/Date(' + myStory.Deadline.getTime() + ')\\/"'
или
var d = myStory.Deadline;
var dateForMS = '"\\/Date(' +
Date.UTC (d.getUTCFullYear(), d.getUTCMonth(),
d.getUTCDate(), d.getUTCHours(),
d.getUTCMinutes(), d.getUTCSeconds(),
d.getUTCMilliseconds()) + ')\\/"'
Вы также можете просто использовать Sys.Serialization.JavaScriptSerializer
из MicrosoftAjax.js
для сериализации Deadline
или любого другого типа Date
.
ОБНОВЛЕНО : Возможно, вам следует использовать '\/Date('
и ')\/'
вместо '"\\/Date('
и ')\\/"'
.Все зависит от того, куда вы вставите строку.
ОБНОВЛЕНО 2 : Теперь у меня есть это!ASP.NET MVC используется в основном для заполнения полей формы в соответствии с Ajax.На стороне сервера будет просто использоваться метод Parse
для каждого типа для преобразования публикуемого параметра в тип.Таким образом, можно использовать любой формат строки, поддерживаемый DateTime.Parse .Например, вы можете использовать формат ISO 8601, например «2010-08-29T13: 15: 00.0000000Z».Для этого в современных браузерах (Firefox, Chrome) можно использовать функцию toISOString()
.Чтобы быть более независимым, можно реализовать преобразование данных, как описано в http://williamsportwebdeveloper.com/cgi/wp/?p=503:
var d = new Date($('#story-deadline').val())
//var d = new Date(); // get the date. Here we use just Now.
var dAsISOString;
if ($.isFunction(d.toISOString)) {
//alert("internal toISOString are used!");
dAsISOString = d.toISOString();
}
else {
dAsISOString = d.getUTCFullYear() + '-' + padzero(d.getUTCMonth() + 1) + '-' +
padzero(d.getUTCDate()) + 'T' + padzero(d.getUTCHours()) + ':' +
padzero(d.getUTCMinutes()) + ':' + padzero(d.getUTCSeconds())+'.'+
pad2zeros(d.getUTCMilliseconds()) + 'Z';
}
var myStory = { Summary: 'Test description', Size: 8, Dedline: dAsISOString };
$.ajax({
url: '/Project/1/AddStory',
data: { Summary: myStory.Summary, Size: myStory.Size, Dedline: myStory.Dedline },
dataType: 'json',
// ...
});