RedirectToAction вообще не работает - PullRequest
15 голосов
/ 10 января 2012

В AccountController в конце метода у меня есть:

RedirectToAction("EveryView", "Account");

В том же файле контроллера у меня есть этот метод:

public ActionResult EveryView()
    {
        return View();
    }

Но этот метод никогда не вызывается,У меня есть точка останова на '{', и она никогда не попадет!

Ответы [ 7 ]

56 голосов
/ 29 декабря 2013

вы поставили 'return', иначе он не будет перенаправлен.

return RedirectToAction("EveryView", "Account");

10 голосов
/ 10 января 2012

Хм ... трудно понять (или сказать), в чем проблема, поскольку код кажется довольно тривиальным.

Возможно, небольшая отладка может помочь!Попробуйте создать новый TestController, который будет иметь внутри IndexR) ActionResult по умолчанию:

return RedirectToAction("EveryView", "Test");

Затем создайте метод EveryView () ActionResult и установите точку останова.

public ActionResult EveryView()
{
    return View();
}

Есливы пытаетесь http://localhost/Test/Index что происходит?Работает ли это?

Если это не сработает, возможно, вы захотите взглянуть на свои маршруты и убедиться, что у вас нет специальных маршрутов, которые могут привести к поломке.

Кроме того, вы можетемог бы внутри вашего Global.asax добавить этот метод:

protected void Application_Error(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError();
}

и установить точку останова на линии, чтобы перехватывать любые неизвестные ошибки.

8 голосов
/ 20 марта 2013

У меня тоже была эта проблема в моем недавнем проекте.Наконец, я решил эту проблему, добавив [AllowAnonymous] к перенаправленному действию, потому что контроллер украшен атрибутом [Authorize], и ​​на данный момент пользователь не вошел в систему. Надеюсь, это поможет.

1 голос
/ 06 апреля 2014

У меня была похожая проблема.Я только что удалил атрибут post [HttpPost] из функции, куда я перенаправил.

1 голос
/ 08 июля 2013

У меня была эта проблема, и это было потому, что добавленный мной собственный фильтр MustBeLoggedIn не разрешал перенаправление на этот метод, аналогично user2192287.

Это означало, что фильтр перенаправлял меня обратно к действию, с которого я начинал.

Возможно, это проблема petko_stankoski, как это было в контроллере их учетной записи.

0 голосов
/ 20 сентября 2018

Если метод Action не вызывается, это может быть связано с тем, что метод зарегистрирован для HttpPost, но вы отправляете запрос HttpGet. Поэтому лучше оставить метод для принятия обоих запросов, используя [AcceptVerbs (HttpVerbs.Get | HttpVerbs.Post)]

0 голосов
/ 09 ноября 2017

Прокомментируйте все загруженные сценарии и попробуйте снова. Некоторые сценарии Помехи этому объекту

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...