Я пытаюсь перерисовать другой вид MVC с углового 1,6 $http.post
. В принципе, я хочу перейти к другому представлению (Checkout), чтобы отобразить параметры, выбранные пользователем на странице сведений. Проблема я имею что если я иду прямо к Checkout я получаю NullReferenceException, поэтому я попытался это:
Угловой:
model.submitDetails = function() {
// Commented out code results in NullReferenceExeption - not binding the data
//var data = {
// car: model.car, colour: model.colour, features: model.features, cover: model.cover
//}
//window.location = 'http://localhost:50592/Cars/Checkout?vm=' + data;
$http.post('http://localhost:50592/Cars/DetailsSubmit',
{ car: model.car, colour: model.colour, features: model.features, cover: model.cover })
.then(function (response) {
window.location.href = response;
}, function (err) {
model.error = err.data;
console.log(err.data);
});
};
$http.post
Вышеприведенные приводит к ошибке 404. Если я не включаю .then
, например. прокомментируйте это, я вижу на вкладке «Сеть» в инструментах разработчика F12, что $http.post
возвращает html напрямую, а не отображает страницу просмотра.
Мой MVC контроллер Код:
[HttpPost]
public ActionResult DetailsSubmit(CheckoutViewModel vm)
{
TempData["car"] = vm.Car;
vm.StartDate = DateTime.Now;
vm.EndDate = DateTime.Now.AddDays(7);
return RedirectToAction("Checkout", vm);
}
public ActionResult Checkout(CheckoutViewModel vm)
{
vm.Car = (Car)TempData["car"];
return View(vm);
}
как я могу успешно перенаправить на страницу Checkout с угловыми функции submitDetails()
? Любая помощь в получении этой работы будет очень признательна.
Хорошо, да имеет смысл - спасибо за этот ответ Крис, значит, я может остановиться вокруг кругов с этим подходом. –