6

In my Controllers i have class AccountController and within in i have this method

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOff()
{
    WebSecurity.Logout();
    return RedirectToAction("Index", "Home");
}

In my Views i have cshtml page with body and this part of code

<form class="float_left" action="Controllers/AccountController" method="post">
    <button class="btn btn-inverse" title="Log out" type="submit">Log   Off</button>
</form>

And this doesn't work, anyone know what is problem or some other simple solution?

tereško
  • 58,060
  • 25
  • 98
  • 150
mikrimouse
  • 277
  • 1
  • 6
  • 24

3 Answers3

5

The action attribute is pointing to a wrong controller action. Your controller action is called LogOff and not AccountController. You should never be manually building <form> elements like that but always use the html helpers that are designed for this purpose:

@using (Html.BeginForm("LogOff", "Account"))
{
    <button class="btn btn-inverse" title="Log out" type="submit">Log Off</button>
}
Darin Dimitrov
  • 1,023,142
  • 271
  • 3,287
  • 2,928
5

You're not referencing the action method here:

action="Controllers/AccountController"

For starters, you don't need to specify Controllers/ because the framework will find the controller for you. Indeed, the notion of a "folder" of controllers isn't known to the client/URL/etc. What you need to give it is a "route" to the specific action method.

Since the MVC framework knows where the controllers are, you need only tell it which controller and which action method on that controller:

action="Account/LogOff"
David
  • 208,112
  • 36
  • 198
  • 279
0

The form action should probably be /Account/LogOff

< form class="float_left" action="/Account/Logoff" method="post">
    <button class="btn btn-inverse" title="Log out" type="submit">Log Off</button>
</form>

Try putting this in the .cshtml file:

@using (Html.BeginForm("LogOff", "Account"))
{
    <button class="btn btn-inverse" title="Log out" type="submit">Log Off</button>
}
Rohrbs
  • 1,855
  • 13
  • 11