我想從一個角度來指示另一個MVC視圖1.6 $http.post
。基本上我想去另一個視圖(簽出)來顯示用戶從「詳細信息」頁面選擇的選項。我遇到的問題是,如果我直接去結帳,我得到一個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()
角函數成功重定向到結帳頁面?任何幫助得到這個工作將不勝感激。
好吧,是的是有道理的 - 感謝這個答案克里斯,意味着我可以停止使用這種方法繞圈轉圈。 –