登出时不会放弃会话

时间:2014-12-11 21:36:36

标签: c# asp.net-mvc asp.net-mvc-4 logout

我正在研究MVC 4应用程序,我是MVC的新宠。我有一个用于注销的Actionlink但是当我点击它时没有调用ActionResult方法。 任何人都可以告诉我,我在哪里犯了错误?

_Layout.chtml:

<nav>
    <ul id="menu">
        <li>@Html.ActionLink("Home", "Index", "Home")</li>
        <li>@Html.ActionLink("About", "About", "Home")</li>
        <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
        @if (Session["LoggedinUser"] != null){
            <li>@Html.ActionLink("LogOut", "Login", "Home")</li>}
    </ul>
</nav>

HomeController.cs

[HttpPost]
public ActionResult LogOut()
{
    FormsAuthentication.SignOut();
    Session.Clear();
    Session.RemoveAll();
    Session.Abandon();
    return RedirectToAction("Index", "Login");
}

2 个答案:

答案 0 :(得分:1)

而不是

  • @ Html.ActionLink(&#34; LogOut&#34;,&#34;登录&#34;,&#34; Home&#34;)
  • }尝试
  • @ Html.ActionLink(&#34; LogOut&#34;,&#34; LogOut&#34;,&#34; Home&#34;)
  • }。

    这对你有用..

    答案 1 :(得分:0)

    您的参数顺序错误,因此您实际上正在调用Login操作:

    public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, 
        string linkText, string actionName, string controllerName)
    

    应该是

    @Html.ActionLink("Whatever Text You Want", "LogOut", "Home")