动作方法没有在mvc 5中触发

时间:2017-01-06 17:16:06

标签: asp.net asp.net-mvc

我有一个像bellow一样的控制器

public class MenuController : Controller
    {
        //
        // GET: /Menu/
        public ActionResult Index()
        {
            return View();
        }

        public RedirectResult logout()
        {
            return RedirectPermanent("http://www.google.com");
        }
    }

我第一次在注销上设置了一个断点,如果我在地址栏中找到URL localhost :(端口号)/ menu / logout代码按预期在断点处停止但是之后每个和时间码不会停止断点。

我花了大约2-3个小时,发现一些堆栈溢出链接,其中一些正文写清楚浏览器缓存我这样做,它的工作但只有一次,这意味着每次调试之前我必须清除缓存。我使用fire-fox (50.1.0)。以上代码复制。请帮助我陷入困境。

2 个答案:

答案 0 :(得分:2)

RedirectPermanent() 的作用。它基本上告诉浏览器,"此资​​源将从不再次工作,因此请始终请求此重定向的URL。"因此,浏览器会记住这一点,并且不会因请求资源而烦恼,因为该资源已被告知将再次无法使用。

如果您希望重定向是暂时的,请不要将其永久化:

return Redirect("http://www.google.com");

答案 1 :(得分:1)

因为您正在调用RedirectPermanent

您的浏览器(正确)缓存了访问/logout 永久重定向到(在这种情况下) Google的事实。
它正在执行301重定向。

使用Redirect代替

public RedirectResult logout()
{
    return Redirect("http://www.google.com");
}