404 на RedirectToAction («Выход из системы», «Учетная запись») - PullRequest
0 голосов
/ 12 июня 2018

Когда я удаляю пользователя, я хочу, чтобы он автоматически выходил из системы, но всякий раз, когда я вызываю функцию выхода из системы с помощью RedirectToAction, я получаю 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");
}

У кого-нибудь есть идеи, почему это так?URL выглядит правильно.

1 Ответ

0 голосов
/ 12 июня 2018

Вы не можете перенаправить на действие 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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...