您好我有一个Ajax表单
@Ajax.BeginForm("UpdateItems", "Basket", new AjaxOptions() { HttpMethod = "Post", OnSuccess = "LoadAjaxSuccess()" }, new { @id = "AjaxForm" })
{
<input type="submit" class="update-basket-button" value="Update" />
<input type="submit" class="basket-checkout-button" value="CheckOut" />
}
现在,当我点击更新时,它应该更新数据库,这对我有用,但是当我点击结帐时,它应该保存更改并重定向到另一个操作。我知道在Ajax帖子中它忽略了RedirecToAction()。什么是实现这一目标的最佳方式。在此先感谢。
控制器操作方法就是这个。
[HttpPost]
public ActionResult UpdateItems(IList<DocumentAndBasketItemDisplayListDto>basketItems, string button)
{
context.UpdateBuyHoldAndQuantityOfBasketItems(basketItems);
if (string.Equals("CheckOut", button))
{
//Response.Redirect("/Order/Index");
return RedirectToAction("Index", "Order");
}
return new EmptyResult();
}
答案 0 :(得分:1)
您可以将ActionResult
更改为JsonResult
并返回:
[HttpPost]
public JsonResult UpdateItems(IListbasketItems, string button)
{
context.UpdateBuyHoldAndQuantityOfBasketItems(basketItems);
if (string.Equals("CheckOut", button))
{
//Response.Redirect("/Order/Index");
return Json(Url.Action("Index", "Order"));
}
return Json("");
}
这样在你的ajax方法中你可以检索数据,然后使用类似的东西:
function LoadAjaxSuccess(data) {
document.location.href = data;
}