2011-08-31 3 views
9

HttpPostEdit입니다. 그 일을 한 후에 (논리 등) 다른 컨트롤러로 리디렉션하려고합니다. HomeController라고 말하면됩니다. 여기있다 :MVC3 ActionResult에서 경로로 리디렉션

[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); 

} 

은 필자가 RedirectToRoute("string"), return RedirectResult(), RedirectToAction() 같은 다른 일을 tryed -하지만 여전히 Edit 방법 (ChairController)에있는 컨트롤러에서 인덱스 뷰를 반환 유지합니다.

옳은 방법은 무엇입니까 ??

+1

비슷한 뭔가 이미 ... [RedirectToRoute 사용하도록되어 있습니까?] [1] ... 희망이 도움이 [1] : HTTP : // 유래. com/questions/1290355/how-is-redirecttoroute-be-be-used-to-be-used –

+0

@Jan 감사합니다. 그것은 게시물에 그 사람을 위해 일하는 것,하지만 나를 위해 아닙니다 : FML –

+1

@ 카스퍼 나는 당신의 질문을 오해 한 것 같아요. 나는 당신이 같은 행동으로 돌아 간다고 말한 것 같아. –

답변

5

와우 wierdest 것은 지금이 발생했습니다. 코드는 정확했습니다 (처음부터 확신했습니다). 다시 한 번 디버깅하려고했는데 코드를 살펴볼 때 디버거가 코드 일부를 마크 업했음을 알았습니다 : return RedirectToAction("Index", 실제로 멈 췄고 "Home");을 사용하지 않았습니다. 또한 중단 점이 실제로 노란색이었고 원본 코드와 원본 코드가 동일하지 않다는 사실을 알게되었습니다. 그게 뭐야? 수백 가지 절약, 재시동, 빌드 및 재구성을 통해 계속 말하고있었습니다. 파란색에서 코드를 받아 들였고 브레이크 포인트가 빨간색으로 바뀌었고 코드는 정상적으로 작동했습니다.

시간을 허리에 대고 정말 죄송합니다. 여기

+1

아마도 개발 서버를 다시 시작하는 것을 잊었을 것입니다. –

18

오타 :

contoller = "Home" 

controller = "Home" 

이상이어야한다 :

return RedirectToAction("index", "home"); 
+1

Woops. 오타가 없습니다. 하지만 내 질문에 명시된 바와 같이, 이미 RedirectToAction() tryed. 작동하지 않습니다. –

+1

@Kasper Skov, 경로 정의를 사용하여 뭔가를 엉망이 아닌 한'return RedirectToAction ("index", "home");은 완벽하게 작동합니다. –

+0

Hehe 나는 알고있다. 그 f * cked. 내 대답을 확인해. 시간을 벌려서 미안해. –