1

我有一个应用程序Asp.Net Mvc4。在我的Checkout控制器中有如下操作:

 public ActionResult Step1()
    {
        var isEmptyCart = GetCartValue();

        if (!isEmptyCart)
        {
            return RedirectToActionPermanent("AllProduct", "Home");
        }

        return View(new Cart());
    }
 private bool GetCartValue()
    {
        var cart = Session[""];
        if (Session["Cart"] == null || ((Cart)Session["Cart"]).CartItems.Count == 0)
        {
            return false;
        }


        cart = Session["Cart"];

        ViewData["Cart"] = cart;
        return true;
    }

和html标签如下

<li><a href="@Url.Action("Step1", "Checkout")">Checkout</a></li>

当我单击此链接时,页面会刷新,但Step1 Action没有执行。我放了断点,发现什么都没有发生。我无法解决这个问题大约一个小时,找不到任何原因导致这种情况,

请帮我。

编辑: 刷新页面后,它给了我AllProduct操作,但我的购物车不是空的。

Edit2:当我多次单击此链接时,出现以下错误:

当该文件已存在时,无法创建/卷影复制“EShop.Core”。

它是什么?

4

1 回答 1

3

也许您的问题与浏览器缓存有关:您在 Step1 操作 ( RedirectToActionPermanent ) 中使用了永久重定向,并且这种重定向被缓存用于 Chrome 或 Firefox 等某些浏览器。(在此处查看更多信息)。

它可以解释为什么它昨天起作用以及为什么它今天直接将您发送到您的 AllProduct 操作(而不是在您的 Step1 操作中设置断点)。

也许您可以尝试重置/清理浏览器缓存并再次测试以查看会发生什么。希望这会有所帮助。

于 2013-10-12T19:09:24.453 回答