当我删除用户时,我希望它自动注销,但每当我使用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");
}
任何人都知道为什么会这样?网址看起来正确。
答案 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");
}