Я работаю над приложением MVC с угловым интерфейсом. До того, как я вручную передавал модель представления, которая содержит ряд различных полей, включая дату и время, непосредственно в представление в качестве параметра ActionResult, затем вручную сериализировал его в представлении с помощью Newtonsoft, прежде чем связать его с угловой моделью и отобразить ее.
то есть:
в контроллере:
ActionResult MainView()
{
....
return View(model);
}
в представлении:
ng-data-init="init(@Newtonsoft.Json.JsonConvert.SerializeObject(Model.ItemList))"
Это работало нормально, и вся информация отображалась правильно.
Однако недавно я переключился на использование функции JsonResult и вызова Angular $ http для автоматического обновления данных в представлении в фоновом режиме. Все работает нормально, за исключением того, что поля DateTime не переводятся / не форматируются должным образом независимо от того, какой сериализатор используется внутри объекта JsonResult.
т
в контроллере:
public JsonResult REIDataRefresh()
{
...
return Json(model.ItemList, JsonRequestBehavior.AllowGet);
}
в угловых:
$scope.data
$scope.LoadData = function() {
$http({
method: "GET",
url: 'Home/REIDataRefresh',
params:{'_': +new Date() }
}).then(function success(response) {
$scope.data = response.data;
}, function error(errResponse) {
alert("data " + errResponse.data + " status " + errResponse.status + " headers " + errResponse.headers + "config " + errResponse.config + " statusText " + errResponse + " xhrStat " + errResponse.xhrStatus);
});
};
// Initial data load
$scope.LoadData();
Когда я запускаю модель через Newtonsoft.JsonConvert.SerializeObject
, она все правильно форматирует, и даты точно соответствуют ожидаемым -
мм / дд / YYY
Но когда я передаю их через возврат Json()
с помощью метода действия JsonResult
, DateTimes выглядит следующим образом:
Большинство этих конструкций MVC являются новыми для меня, поэтому я могу только предположить, что сериализатор, запеченный в Json()
, работает иначе, чем тот, который я использовал раньше. Таким образом, есть только два потенциальных решения, о которых я могу подумать: либо выяснить, как сказать angular, как форматировать те странные DateTimes, которые он получает из JsonResult, либо попросить Json использовать сериализатор, который я использовал ранее, вместо его по умолчанию, но я понятия не имею, как выполнить какую-либо из этих задач или если они даже являются правильным решением.