내 MVC 프로젝트에서 제출할 때 동일한 감사 페이지로 리디렉션하려는 두 가지 양식이 있습니다.왜 ViewBag가 비어 있습니까?
ViewBag에 저장 한 2 가지 형식의 컨트롤러에서 ThankYou 페이지의 텍스트. 컨트롤러에
나는이 같은 ViewBage 설정 :
if (result == "success")
{
ViewBag.ThankYouText = "We have received your Contact us request."
return RedirectToAction("Index", "ThankYou",ViewBag);
}
를 그리고 감사합니다보기에 나는 그것을 얻을 :
<p>ViewBag.ThankYouText</p>
을하지만 내 감사합니다 페이지에 아무것도를 받고 없습니다 유지.
나는 순수한 MVC에 익숙하지 않기 때문에 나는 틀린 어떤 생각을했을 것임에 틀림 없는가?
'ViewBag '은 컨트롤러에서보기로 데이터를 전달하기위한 것입니다. 다른 방법으로 리디렉션하면 즉시 값이 손실됩니다. 하나의 옵션은'TempData'를 사용하여 메소드를 다른 메소드에 전달하는 것입니다. 또 다른 방법은 return RedirectToAction ("Index", "ThankYou", new {message = "..."}); 그리고'ThankYou()'메서드에서'string message' 매개 변수를 추가하는 것입니다. –
예 하나의 컨트롤러 액션에서 다른 액션으로 데이터를 전달하기 위해'TempData'를 사용할 필요가 있습니다. 두번째 액션에서 뷰백을 설정할 수 있습니다. 그렇지 않으면 TempData도 작동합니다. –
@StephenMuecke 생각 해줘서 고맙습니다. 'tempData'를 사용하는 것보다, 나는 뷰에서 값을 얻는 방법을 확실히 알고있다. – user3378165