Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
lookinside
0 / 0 / 1
Регистрация: 11.01.2016
Сообщений: 14
1

RedirectToAction не перенаправляет из HttpPost-метода

10.07.2016, 19:41. Просмотров 584. Ответов 2
Метки нет (Все метки)

У меня есть контроллер и два представления. Первое представление передает кое-какие данные через HttpPost, в контроллере происходит обработка и метод с помощью RedirectToAction перенаправляет все это в другое представление. Но вот проблема - перенаправление почему-то не происходит. Контроллер выглядит так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System.Web.Mvc;
using System.Collections.Generic;
using MyQuiz.Models;
 
namespace MyQuiz.Controllers
{
    public class QuizController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View();
        }
        
        [HttpPost]
        public ActionResult Index(Result result)
        {
            //тут происходит обработка результатов
            //код этой части предоставлять нет смысла
            //потому что даже если эту часть закомментировать
            //редирект все равно не происходит            
 
            return RedirectToAction("ShowResult", "Quiz");
        }
 
        [HttpGet]
        public ActionResult ShowResult()
        {
            return View();
        }     
    }
}
Что интересно: если эту часть кода вставить в HttpGet-метод, все перенаправляется без проблем:


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System.Web.Mvc;
using System.Collections.Generic;
using MyQuiz.Models;
 
namespace MyQuiz.Controllers
{
    public class QuizController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            //при загрузке Index страница перенаправляется на ShowResult без проблем
            return RedirectToAction("ShowResult", "Quiz");
        }
        
        [HttpPost]
        public ActionResult Index(Result result)
        {
            //тут происходит обработка результатов
            //код этой части предоставлять нет смысла
            //потому что даже если эту часть закомментировать
            //редирект все равно не происходит            
 
            return RedirectToAction("ShowResult", "Quiz");
        }
 
        [HttpGet]
        public ActionResult ShowResult()
        {
            return View();
        }     
    }
}
Почему так происходит? Что я делаю не так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2016, 19:41
Ответы с готовыми решениями:

RedirectToAction с параметром
Есть ли возможность передать из одного метода в другой содержимое коллекции?...

RedirectToAction методом POST
Как сделать? return RedirectToAction("AddTranzForTel", model); Делает GET.

RedirectToAction- передача объекта
Добрый день! Возникла необходимость вызвать другой метод контроллера и...

Передать List<T> через RedirectToAction
Код: public ActionResult AdvancedSearch(AdvancedSearchIM model) {...

Неправильное формирование строки через RedirectToAction
Добрый день. Возникла маленькая проблема с RedirectToAction формируется...

2
IamRain
1407 / 1254 / 395
Регистрация: 02.08.2011
Сообщений: 3,723
10.07.2016, 19:58 2
Предполагаю, что post запрос выполняется через ajax: браузер в этом случае будет игнорировать Redirect сервера, и нужно
делать редирект вручную.
Source: http://stackoverflow.com/questions/2...on-not-working
0
lookinside
0 / 0 / 1
Регистрация: 11.01.2016
Сообщений: 14
10.07.2016, 20:47  [ТС] 3
Цитата Сообщение от IamRain Посмотреть сообщение
Предполагаю, что post запрос выполняется через ajax: браузер в этом случае будет игнорировать Redirect сервера, и нужно
делать редирект вручную.
Ого, так вот где собака зарыта. Спасибо! Вместо RedirectToAction по совету теперь возвращаю вот это:

C#
1
2
var script = "window.location ='" + Url.Action("ShowResult", "Quiz") + "' ;";
return JavaScript(script);
И оно наконец-то работает! Спасибо за ссылку!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2016, 20:47

Как послать параметр используя RedirectToAction
Всем привет! делаю учебный сайтик. ...на страничке, где есть список животных,...

Как осуществить RedirectToAction из Ajax формы
Здравствуйте. Интересует возможность во время выполнения действия в...

HttpPost метод контроллера
Подскажите, что надо поменять в этом проекте, чтобы по нажатию на кнопочку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru