MVC3 Redirect для маршрута из ActionResult - PullRequest
10 голосов
/ 31 августа 2011

Итак, у меня есть HttpPost только ActionResult под названием Edit.После выполнения своей задачи (логика и т. Д.) Я хочу, чтобы он перенаправил на другой контроллер.Скажем, HomeController.Вот оно:

[HttpPost]
public ActionResult Edit(Chair chair, string xml)
{
    if (ModelState.IsValid)
    {
        try
        {
            _repository.EditChair(chair, xml);
            return RedirectToRoute(new { contoller = "Home", action = "index"});
        }
        catch (Exception ex)
        {
            //error msg for failed edit in XML file
            ModelState.AddModelError("", "Error editing record. " + ex.Message);
        }
    }
    return View(Chair);

}

Я пробовал другие вещи, такие как return RedirectResult(), RedirectToAction(), RedirectToRoute("string") - но он все еще продолжает возвращать представление индекса из контроллера, в котором находится метод Edit (ChairController).

Как правильно это сделать ??

Ответы [ 2 ]

20 голосов
/ 31 августа 2011

Опечатка:

contoller = "Home"

должно быть

controller = "Home"

или

return RedirectToAction("index", "home");
5 голосов
/ 31 августа 2011

Ух ты самая странная вещь когда-либо вызывала это.Код был правильным (как я был уверен с самого начала).Я попытался отладить его еще раз и заметил, когда просматривал код, что отладчик thingo разметил только часть кода: return RedirectToAction("Index", На самом деле он остановился и не прошел через "Home");.Я также заметил, что моя точка останова на самом деле была желтой, и она говорила мне что-то о том, что исходный код не идентичен исходному?Что что?Он продолжал говорить, что через сотни операций сохранения, перезапуска, сборки и восстановления.Внезапно он принял код, моя точка останова стала красной, код работал просто отлично.

Очень жаль, что я тянул время!

...