2010-01-08 4 views
0

희망 ... 내가 직접 설명 할 수 있기를 바랍니다 ... 나는 masterpage에 로그인 컨트롤을 가지고 있습니다. 로그인 버튼을 클릭하면 자격 증명을 확인하는 accountcontroller의 로그온 방법으로 이동합니다. 확인 여부와 상관없이 리디렉션되는 홈페이지 ("집", "색인")로 리디렉션됩니다. 하지만 로그인에 실패한 경우 사용자에게 메시지를 표시하려고합니다. 그래서 내가 시도한 로그온 메서드 (viewdata [ "로그온"] = "실패한") viewdata 설정하고이 viewdata 존재하는 경우 및 일부 텍스트 함께 스팬 렌더링 masterpage 확인하십시오. 하지만 나는 viewdata가 작업으로 리디렉션하는 방법으로 보존되지 않는다는 것을 알고 있습니다.asp.net mvc :보기에 2 개의 컨트롤러 사이에 정보 전달

내 로그온 방법이 어떻게하면 로그인이 실패했는지 내 masterpage보기에 알릴 수있는 가장 좋은 방법은 무엇입니까?

미셸

+0

TempData 정보 읽기 : http://www.persistall.com/archive/2007/12/22/asp.net-mvc-a-ha-moment-tempdata--flash.aspx [] –

+0

신청서에 FlashMessages를 보내려면이 프로젝트를 참조하십시오. http://maff.ailoo.net/2009/06/build-a-flashmessenger-system-in-aspnet-mvc/ 나는 당신을 도울 수 있다고 생각합니다! []의 –

답변

3

질문을 올바르게 읽으면 RedirectToAction 이후에 사용할 수 있어야하는 작업의 값을 설정해야합니다. Tempdata에 키를 설정해야합니다.

TempData["MessageToUser"] = "I dont let you in dude!" 

은 TempData는 리디렉션 후 계속 사용할 수 있습니다.

+1

예, 맞습니다. 그러나 tempdata는 세션에 저장되어 있지 않습니까? 응용 프로그램의 나머지 부분은 sessionstate없이 작동하며,이 세션 상태를 소개하는 것이 허용되지 않는다고 생각합니다. – Michel

+0

예, 맞습니다. –

1

체크 아웃 MvcContrib. Queen3 어딘가에는
(리디렉션간에 정보 전달)에 대한 해결책이 있다고 언급되어 있습니다.

그러나 인증을 위해 별도의보기를 만드는 것이 좋습니다. 그러면 문제는 사라질 것입니다.

+0

흠, 좋은 생각. 어쩌면 아약스 양식, 그럼 난 다시 게시하고 별도의 볼 수 있습니다. – Michel

+0

인증 양식 용 AJAX도 좋지 않습니다. –

+0

흠, 이해가 가면, 내가 succes에 대한 redirecttoaction을 수행 할 것이라고 생각하고 return view ("")가 실패했다. 후자의 경우에는 viewdata가 보존됩니다 – Michel