404 on RedirectToAction(" Logoff"," Account")

时间:2018-06-12 18:43:25

标签: c# asp.net-mvc

当我删除用户时,我希望它自动注销,但每当我使用RedirectToAction调用logout-function时,我都会得到一个404.我在stackoverflow上看到了其他地方,这是试图实现的通过按钮单击并且[HttpPost]和[HttpGet]的方法是冲突的 - 但这似乎不是这里的情况。

UserController中

[HttpPost]
public ActionResult DeleteConfirmed(int id)
{
    User user = db.Users.Find(id);
    db.Users.Remove(user);
    db.SaveChanges();
    return RedirectToAction("LogOff", "Account");
}

的AccountController

[HttpPost]    
public ActionResult LogOff()
{
  AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
  return RedirectToAction("Index", "Home");
}

任何人都知道为什么会这样?网址看起来正确。

1 个答案:

答案 0 :(得分:0)

can't redirect to a POST行动。 一种可能性可能是将你的注销行为分解出来并称之为:

public ActionResult LogOffAction()
{
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
    return RedirectToAction("Index", "Home");
}

或者只需添加您要保存的一行:

[HttpPost]
public ActionResult DeleteConfirmed(int id)
{
    User user = db.Users.Find(id);
    db.Users.Remove(user);
    db.SaveChanges();
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
    return RedirectToAction("Index", "Home");
}