2010-06-11 2 views
0

저는 ActiveRecord를 사용하여 내 자신의 사용자 지정 사용자 및 역할 개체를 개발했습니다.이 개체는 기본 Asp.Net 공급자를 확장하지 않으므로 HttpContext에서 사용자를 가져올 수 없습니다. 메뉴를 렌더링하는 사용자 정의 htmlhelper를 만들 수 있지만 내보기는 메뉴 또는 마스터 페이지를 렌더링해야합니까?렌더 메뉴 또는 마스터 페이지를 볼 수 있습니다.

마스터 페이지 인 경우 일부 메뉴 항목은 사용자 역할에 따라 달라 지므로 현재 사용자와 같은 사용자 정의 htmlhelper에 어떻게 전달할 수 있습니까?

또한 마스터 페이지에서 어떤 컨트롤러를 볼 수 있습니까?

답변

2

1) 메뉴 기능이 여러 페이지에 존재한다고 가정하면 마스터 페이지에 넣는 것이 좋습니다. 그렇지 않다면 정상적인보기.

2) 모든 뷰 모델을 기본 뷰 클래스에서 상속 받아 마스터 페이지를 사용하는 것이 일반적입니다. 예 :

System.Web.Mvc.ViewMasterPage<ViewBase> 
System.Web.Mvc.ViewPage<MyViewModel> 

public class MyViewModel : ViewBase { } 

3) 경로 데이터에서 특정 컨트롤러를 꺼낼 수 있습니다. 그러나 특정 컨트롤러에 특정 기능이 필요한 경우 모든보기에서 동일한 마스터 페이지를 사용하는 것보다 해당보기에 대해 다른 마스터 페이지를 사용하는 것이 좋습니다.

+0

내 견해에 대해 완전히 강력한 형식화 된 뷰 모델을 사용해야하므로 제안이 잘 수행되었습니다. – Roman

1

일반적으로 모든 ASP.NET 컨트롤 (WebForm 또는 MVC)은 자체 상태를 제어해야합니다.

탐색을 처리하는 경우 .ASCX (부분보기)를 만들고 마스터 페이지에 배치한다고 말하고 싶습니다. 부분 뷰가 HttpContext를 기반으로 표시되는 방법을 제어하게하십시오.

+0

고마워요. 나는 결국 내 메뉴 렌더링을 처리 할 부분 뷰를 작성하게되었습니다. 그것의 아주 감미로운. – Roman

관련 문제