【发布时间】:2017-07-11 09:00:17
【问题描述】:
我正在尝试从 Angular 1.6 $http.post 重定向到另一个 MVC 视图。基本上我想去另一个视图(结帐)来显示用户从详细信息页面中选择的选项。我遇到的麻烦是,如果我直接去 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 开发工具的 Network 选项卡中看到 $http.post 直接返回 html 而不是呈现 Checkout View 页面。
我的 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);
}
如何从submitDetails() Angular 函数成功重定向到结帐页面?非常感谢任何帮助使这项工作正常进行。
【问题讨论】:
标签: angularjs asp.net-mvc redirect asp.net-mvc-5 http-post