2013-08-02 3 views
0

Привет У меня есть форма AjaxКак перенаправить к действию в 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" /> 
} 

Теперь, когда я нажимаю обновить его следует обновить базу данных, которая работает для меня, но когда я нажимаю 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(); 

    } 

ответ

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; 
} 
+0

Hi sergioadh Спасибо для ответа, но теперь я получаю «Ресурс не может быть найден». мне также необходимо установить «данные» в AjaxOption. пожалуйста, порекомендуйте. –

+0

Проверьте, чтобы имя действия было правильным, так как оно не может найти его. Он должен быть таким же как в контроллере, так и в форме. – sergioadh

+0

Я также думаю, что OnSucces должен быть без "()" – sergioadh

Смежные вопросы