Работа с датами и временем между JavaScript и .NET может быть затруднена, и мы обычно обрабатываем это в наших приложениях, всегда делая взаимодействие в Unix Time:
[HttpPost]
public ActionResult GetApplication(int id)
{
DateTime unixTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Json(new Application
{
Name = "Testing",
ApplicationIdentifier = "123ABC",
FrequencyValue = 1,
FrequencyType = 1,
BaseDate = (DateTime.Now - unixTime).TotalMilliseconds
});
}
Теперь, когда ваше приложение JavaScript имеетUnix Time, его можно легко преобразовать в Date (вы также неправильно форматируете строку даты):
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Home/GetApplication/" + id,
dataType: "json",
data: '',
timeout: 10000,
success: function (obj) {
var d = new Date(obj.BaseDate);
var dateString = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();
$('#Name').val(obj.Name);
$('#ApplicationIdentifier').val(obj.ApplicationIdentifier);
$('#Frequency').val(obj.FrequencyValue);
$('#BaseDate').val(dateString);
},
error: function () {
return;
}
});
Кроме того, я бы не стал возвращать вашу сущность EF во внешний интерфейс, только передавал еечто это действительно нужно.Используя объект dynamic
, ваши типы могут быть выведены здесь, и BaseDate становится любым типом, который вы ему дадите:
[HttpPost]
public ActionResult GetApplication(int id)
{
DateTime unixTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Json(new {
Name = "Testing",
ApplicationIdentifier = "123ABC",
FrequencyValue = 1,
BaseDate = (DateTime.Now - unixTime).TotalMilliseconds
});
}