使用模型值MVC4进行Ajax发布和重定向
我通过带有json数据的agax post提交页面,然后重定向到其他视图。 它工作正常。
$.ajax({ url: '/bus/result', type: "POST", dataType: "json", contentType: "application/json; charset=utf-8", data: ko.toJSON(bookingInfo), success: function (data, textStatus, xhr) { window.location.href = data.redirectToUrl; } });
MVC控制器
[AcceptVerbs(HttpVerbs.Post)] public ActionResult Result(BusBookingInfo bookingInfo) { if (Request.IsAjaxRequest()) { return Json(new { redirectToUrl = Url.Action("Booking") }); } //return Redirect("/bus/booking/"); return RedirectToAction("result"); }
但现在我想将bookingInfo对象传递给Booking视图。 我知道我可以通过查询字符串但是可以绑定这个模型对象预订视图吗?
成功回调而不是window.location.href
,
success: function (data, textStatus, xhr) { window.location.href = data.redirectToUrl; }
你可以在这里进行另一个ajax
/ $.post
调用,并使用POST
方法传递你的对象。
$.ajax({ url: '/bus/result', type: "POST", dataType: "json", contentType: "application/json; charset=utf-8", data: ko.toJSON(bookingInfo), success: function (data, textStatus, xhr) { $.post(data.redirectToUrl, bookingInfo, function(){ //TODO: callback }); } });
更新:也许TempData dictioanry在这里有用…
[AcceptVerbs(HttpVerbs.Post)] public ActionResult Result(BusBookingInfo bookingInfo) { if (Request.IsAjaxRequest()) { TempData["ViewModelItem"] = bookingInfo; return RedirectToAction("Booking"); } //return Redirect("/bus/booking/"); return RedirectToAction("result"); } public ActionResult Booking() { var bookingInfo = (BusBookingInfo)TempData["ViewModelItem"]; //TODO: code }