웹 사이트의 기본 레이아웃 템플릿을 지정하는 기본 마스터 페이지가 있습니다. 또한 섹션에 따라 탭을 변경하는 논리를 처리하고 페이지 메타 정보도 설정합니다. 동적 중첩 마스터 페이지, 공유 속성
나는 동적으로 쿼리 문자열을보고 데이터베이스에서 레코드를 로딩하고, 그 기록에서 발견되는 값에 따라 동적으로 중첩 된 마스터 페이지를 설정하여 중첩 된 마스터 페이지를로드하고 있습니다. 레이아웃과 기능적 차이를 위해 동적 중첩 마스터 페이지를로드해야합니다.내가 추가 데이터베이스 호출을 피할 수 있도록 기본 마스터 페이지와 동적으로로드 마스터 페이지에서 사용하려면 해당 레코드에 추가 정보가 있습니다.
현재, 나는 MasterPage은 기본 마스터 페이지에 대한 기본 클래스 역할을 상속하는 클래스를 설정했습니다. 기본 마스터 페이지와 중첩 된 동적으로 호출되는 마스터 페이지간에 공유하려는 데이터베이스 호출을 나타내는 개체를 보유하는 공유 (정적) 속성이 있습니다.
그것은 작동하지만, 조금 못생긴 것 같다. 다른 더 나은 솔루션이 있습니까?
예,이 작업,하지만 내가 아는 한 당신은 강한 타이핑을 잃게 :
... 그리고 동적으로 불리는 마스터 페이지에 내가 캐스팅하여 페이지의 기본 클래스를 참조 할 수 있습니다 추가 작업없이). – ScottE
일반적으로 정적 속성 클래스 또는 인스턴스 클래스를 사용하여 HttpContext.Items 컬렉션을 통해 전달해야하는 상황을 래핑했습니다. 나는 아이템에 넣은 데이터에 대한 속성을 가진 ContextItems 클래스와 같은 것을 가질 것이다. 내가 입력 한 입력 된 클래스로 Items 컬렉션에서 데이터를 반환하려면 거기에 내 입력을 수행합니다. –