【发布时间】:2018-11-22 05:50:44
【问题描述】:
当我删除一个用户时,我希望它自动注销,但每当我使用 RedirectToAction 调用注销函数时,我都会收到 404。我在 stackoverflow 的其他地方看到,这是试图通过按钮单击并且 [HttpPost] 和 [HttpGet] 的方法发生冲突 - 但这里似乎不是这种情况。
用户控制器
[HttpPost]
public ActionResult DeleteConfirmed(int id)
{
User user = db.Users.Find(id);
db.Users.Remove(user);
db.SaveChanges();
return RedirectToAction("LogOff", "Account");
}
账户控制者
[HttpPost]
public ActionResult LogOff()
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
return RedirectToAction("Index", "Home");
}
有人知道为什么会这样吗?网址看起来不错。
【问题讨论】:
-
当您 RedirectToAction 浏览器发出 Get 请求时,您的控制器操作是 Post,因此找不到。据我所知,您不能重定向到 Post 动词。
-
@JonathonChase 这似乎是一个奇怪的问题,但是否可以将 LogOff 函数定义为 GetRequest ......如果是这样。你会建议有一个单独的注销功能吗?
-
我根本不知道您需要重定向到注销方法。如果您的注销过程以某种方式变得复杂,我会将其推送到它自己的类中,并从需要注销的控制器中调用它。
-
你告诉我的那一点点就足以让我找到解决方案。谢谢:)
标签: c# asp.net-mvc