Я пытаюсь получить время с даты запроса AjaxType json. результат я получаю:Deserialization JSON time MVC
/DATE(1436688000000)/
Heres мой код:
вид:
<div class="col-sm-8">
@Html.DropDownListFor(model => model[i].MovieShowTime.Single().MovieID, SelectMovieID, "Select Movie", new { id = "MovieName", name = "MovieName" })
@Html.DropDownListFor(x => x[i].MovieShowTimeID, Enumerable.Empty<SelectListItem>(), "--Loading Value--", new { id = "ShowTime", name = "ShowTime" })
@Html.ValidationMessageFor(model=>model[i].MovieShowTimeID)
</div>
контроллер:
public JsonResult GetShowTime(int? MovieID)
{
var data = (from m in db.MovieShowTimes
where m.MovieID == MovieID
select new
{
id = m.MovieShowTimeID,
name = m.ShowTime
}).ToList();
return Json(data, JsonRequestBehavior.AllowGet);
}
Аякса:.
$(function() {
$('#MovieName').change(function() {
$.ajax({
type: "POST",
url: '@Url.Action("GetShowTime", "TimeScreening")',
data: { MovieID: $('#MovieName').val() },
dataType : 'json',
success: function (data) {
$('#ShowTime').html('');
//alert(ChangeDateFormat("\/Date(1319266795390+0800)\/"));
$.each(data, function (id, option) {
var name = ChangeDateFormat(option.name)
$('#ShowTime').append($('<option></option>').val(option.id).html(option.name));
});
},
error: function (xhr, ajaxOptions, thrownEror) {
alert("False" + xhr +"..."+ ajaxOptions +"... "+ thrownEror);
}
});
});
});
Я вижу threds о преобразовании формы json в C# datetime, но ни один из них не разрешил проблему. следует за этим сообщением: JSON-Serialization-and-Deserialization-in-ASP-NET это jave me the closet answer, но это на свидании.
код:
function ChangeDateFormat(jsondate) {
jsondate = jsondate.replace("/Date(", "").replace(")/", "");
if (jsondate.indexOf("+") > 0) {
jsondate = jsondate.substring(0, jsondate.indexOf("+"));
}
else if (jsondate.indexOf("-") > 0) {
jsondate = jsondate.substring(0, jsondate.indexOf("-"));
}
var date = new Date(parseInt(jsondate, 10));
var month = date.getMonth() + 1 < 10 ?
"0" + (date.getMonth() + 1) : date.getMonth() + 1;
var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
return date.getFullYear() + "-" + month + "-" + currentDate;
}
этого ответ: Format a Microsoft JSON date действительно не уродливый разбор, но это не дало мне DateTime.Now и не близко ко времени.
этот ответ: ASP.NET MVC JsonResult Date Format такой же.
и это artical хорошо, но то же самое .. dates-and-json
так .. то, что мне нужно сделать?
'/ DATE (1436688000000) /' не является допустимой строкой json. он даже не близок к действию json ... –
что он печатает ...: S весь код здесь. @Leandro Soares answerd. спасибо –