我有一个非常简单的网站,我是ASP.NET MVC的新手。在帐户控制器中我登录和注销。即使是http帖子,登录工作也很好,用户可以登录,我将userId添加到会话中:
public ActionResult Login()
{
//Login process ...
Session.Add("TrakIOLoggedUser", userName);
}
在Logout中我删除了这个Session变量:
public ActionResult Logout()
{
if (Session["TrakIOLoggedUser"] != null) Session.Remove("TrakIOLoggedUser");
}
现在奇怪的是:当我单击Logout链接时离开网站时没有任何交互它只是重定向到索引,默认操作,似乎控制器中不存在该操作。 当我将动作重命名为其他任何东西时,例如Logoff和我在短时间内登录后点击Logout链接,它会调用Logoff,一切正常,但是再次登录后我再单独停留几分钟(我认为会话过期)它不起作用,就像之前调用Logout一样。
断点未命中,它再次将我重定向到默认操作。在此之后,我可以将其重命名为Logoff或Logout,即使在Visual Studio和Windows重新启动后也无效。就像它记住这些名字一样:D:D
如果我给出一个新名字,如果我不留下它,它会再次起作用。这是什么意思?任何其他不与Session交互的动作都可以随时运行......
有什么建议吗?