2009-04-17 8 views
0

asp.net MVC 프레임 워크를 사용하고 있습니다. 내 응용 프로그램에서는 사용자가 로그인해야합니다. 사용자 이름과 암호의 조합이 정확하면 메뉴가있는 div (또는 panel?)가 표시되어야합니다. 하지만 어떻게해야합니까? 내 패널 pnlMenu 이름은, 내 컨트롤러에서 나는 같은 것을 할 수 없을 때 : 그래서C# MVC의 GUI 처리

pnlMenu.visible = true; 

을, 내가 어떻게이 일을해야합니까?

답변

3

당신이 할 일은 컨트롤러 검사에 사용자가 로그인되어 있는지.이 메소드를 호출하고이 같은을 ViewData에 값을 설정할 수 있습니다 :

그런 다음이 값을 기준으로 메소드의 가시성을 설정할 수 있습니다. 이렇게하면 나중에보기를 변경하거나 여러보기를 결정할 때마다이 값을 사용할 수 있으며보기와 제어기 사이에 연결이 없습니다.

0

보기에서 적절한 컨트롤을 숨기거나 표시 할 수있는 메서드 나 속성을 만드시겠습니까?

그런 다음 컨트롤러에서보기의 해당 속성이나 메서드에 액세스 할 수 있습니까? 그렇지 않습니다.

컨트롤러의 뷰에서 특정 '컨트롤'을 참조하고 싶지 않습니다. MVC의 아이디어 중 하나는 UI를 다른 구현 (web/win/...)으로 바꿀 수 있기 때문입니다. 동일한 컨트롤러 및 응용 프로그램 논리를 사용하십시오. 그런 다음 View가 지원해야하는 작업을 설명하기 만하면 View가 지원해야하는 '계약'을 설명하는 인터페이스에서 'ChangeState (bool loggedIn)'메소드를 생성해야합니다 . 컨트롤러에서

, 당신은 사용자가 로그인했을 때

+0

보기에서 속성을 만들려면 어떻게해야합니까? 보기는 코드 숨김 파일이없는 aspx입니다. – Martijn

+0

"... 그래서 View가 지원해야하는 '계약'을 설명하는 인터페이스에서"이 부분을 이해할 수 없습니다. "라는 메서드를 만들어야합니다. 이 일을 어디에서해야합니까? – Martijn

+0

컨트롤러의 뷰에서 메서드 나 속성에 직접 액세스하지 않으려합니다. –