RedirectToAction重定向到不同于指定的ActionResult

时间:2017-12-19 15:02:29

标签: c# asp.net-mvc

我目前遇到问题,我的RedirectToAction重定向到生成的控制器中包含的Dispose()方法。我不确定为什么它会采用这种方法而不是我指定的方法。我要做的是在我的一个模型中添加一个条目(OwnGame,这是成功的)然后我想重定向到一个动作结果,删除前一个模型/表中的那些条目({{ 1}})一旦它们被添加到我提到的模型/数据库表中。下面是第一个添加重定向的操作结果。

Cart

如果它是相关的,我已经包含了我想要重定向到的方法,但它失败了。

//GET: OwnGame/Create
[CustomAuthorize(Roles = "Member")]
public ActionResult Create(string userEmail)
{
    List<int> GameIDs = new List<int>();
    GameIDs = (List<int>)TempData["CheckoutGameIDs"];
    ViewBag.Email = userEmail;

    for (int i = 0; i < GameIDs.Count; i++)
    {
        ViewBag.GameID = GameIDs[i];
        OwnGame ownedGames = new OwnGame();
        ownedGames.Email = userEmail;
        ownedGames.GameID = GameIDs[i];

        db.OwnGames.Add(ownedGames);
        db.SaveChanges();
    }
    return RedirectToAction("EmptyCart");
}

此外,我没有对public ActionResult EmptyCart(string userEmail) { var cartItems = db.Carts.Where(o => o.Email.Contains(userEmail)); foreach (Cart singleItem in cartItems) { Cart cartSingleItem = db.Carts.Find(singleItem.CartID); db.Carts.Remove(cartSingleItem); } db.SaveChanges(); return RedirectToAction("Index", new { userEmail = userEmail }); } 方法做任何事情,这是标准的。所有这一切都应该在同一个控制器中进行。

1 个答案:

答案 0 :(得分:2)

因为=ISERROR(K1) 有一个参数,当您从EmptyCart调用它时必须指定它的值:

RedirectToAction

或者作为替代方案,您可以设置该参数optional

return RedirectToAction("EmptyCart", new { userEmail = "" });