- 일반 ASP.NET 페이지와 마스터 페이지의 차이점
1. 확장자가 .master로 지정
2. 지시문 <%@ Page %> 대신 <%@ Master %> 으로 변경
3. ContentPlaceHolder 컨트롤을 사용 가능
- 마스터 페이지의 런타임 동작
1. 사용자가 컨텐츠 페이지의 URL을 입력하여 페이지를 요청.
2. 불러온 페이지에서 @ Page 지시문을 읽고, 지시문이 마스터 페이지를 참조하면 마스터 페이지도 읽는다.
페이지를 처음 요청한 경우 두 페이지가 모두 컴파일.
3. 컨텐츠가 업데이트된 마스터 페이지가 컨텐츠 페이지의 컨트롤 트리에 병합.
4. 개별 Content 컨트롤의 컨텐츠가 마스터 페이지의 해당 ContentPlaceHolder 컨트롤에 병합.
5. 병합된 페이지가 브라우저에 렌더링.
- 마스터 페이지와 컨텐츠 페이지의 설정 우선순위
동작에 영향을 줄 수도 있다. 예를 들면, 컨텐츠 페이지의 EnableViewState 솔성을 true로 설정한 상태에서 마스터 페이지의 동일 속성을
false로 설정하면 마스터 페이지의 설정이 우선하기 때문에 뷰 상태를 사용할 수 없게 된다.
- 마스터 페이지의 적용 방법
1. 페이지
<@ Page Language="C#" MasterPageFile="Sample.Master" %>
2. 응용프로그램
구성파일 (Web.config)의 pages 요소를 설정, Content 컨트롤이 포함된 ASP.NET 페이지는 적용, 포함이 안되어 있다면 미적용.
컨텐츠 페이지에서 1번과 같이 설정하고, Web.config 에서도 설정되어 있는 경우의 적용 우선순위는 컨텐츠 페이지 설정이 적용.
<pages masterPageFile="Sample.Master" />
3. 폴더
응용 프로그램은 각각 다른 마스터 페이지를 설정하는 서로 다른 하위 폴더에 있는 Web.config 파일 두개 이상을 포함할 수 있다.
- 참조 및 출처 :
MSDN > ASP.NET 2.0의 마스터 페이지
MSDN > ASP.NET 마스터 페이지 개요
1. 확장자가 .master로 지정
2. 지시문 <%@ Page %> 대신 <%@ Master %> 으로 변경
3. ContentPlaceHolder 컨트롤을 사용 가능
- 마스터 페이지의 런타임 동작
1. 사용자가 컨텐츠 페이지의 URL을 입력하여 페이지를 요청.
2. 불러온 페이지에서 @ Page 지시문을 읽고, 지시문이 마스터 페이지를 참조하면 마스터 페이지도 읽는다.
페이지를 처음 요청한 경우 두 페이지가 모두 컴파일.
3. 컨텐츠가 업데이트된 마스터 페이지가 컨텐츠 페이지의 컨트롤 트리에 병합.
4. 개별 Content 컨트롤의 컨텐츠가 마스터 페이지의 해당 ContentPlaceHolder 컨트롤에 병합.
5. 병합된 페이지가 브라우저에 렌더링.
- 마스터 페이지와 컨텐츠 페이지의 설정 우선순위
Page
Master Page
(Master page markup and controls)
ContentPlaceHolder
Content page markup and server controls
(Master page markup and controls)
ContentPlaceHolder
Content page markup and server controls
(Master page markup and controls)
마스터 페이지가 페이지에 있는 컨트롤의 가장 가까운 부모이기 때문에, 마스터 페이지에 페이지 전체 속성을 설정하면 컨텐츠 페이지의 Master Page
(Master page markup and controls)
ContentPlaceHolder
Content page markup and server controls
(Master page markup and controls)
ContentPlaceHolder
Content page markup and server controls
(Master page markup and controls)
동작에 영향을 줄 수도 있다. 예를 들면, 컨텐츠 페이지의 EnableViewState 솔성을 true로 설정한 상태에서 마스터 페이지의 동일 속성을
false로 설정하면 마스터 페이지의 설정이 우선하기 때문에 뷰 상태를 사용할 수 없게 된다.
- 마스터 페이지의 적용 방법
1. 페이지
<@ Page Language="C#" MasterPageFile="Sample.Master" %>
2. 응용프로그램
구성파일 (Web.config)의 pages 요소를 설정, Content 컨트롤이 포함된 ASP.NET 페이지는 적용, 포함이 안되어 있다면 미적용.
컨텐츠 페이지에서 1번과 같이 설정하고, Web.config 에서도 설정되어 있는 경우의 적용 우선순위는 컨텐츠 페이지 설정이 적용.
<pages masterPageFile="Sample.Master" />
3. 폴더
응용 프로그램은 각각 다른 마스터 페이지를 설정하는 서로 다른 하위 폴더에 있는 Web.config 파일 두개 이상을 포함할 수 있다.
- 참조 및 출처 :
MSDN > ASP.NET 2.0의 마스터 페이지
MSDN > ASP.NET 마스터 페이지 개요
'WEB > ASP.NET' 카테고리의 다른 글
디버깅 (0) | 2010.04.08 |
---|---|
테마 (0) | 2010.04.04 |
ASP.NET 컨트롤 -3- (0) | 2010.03.12 |
ASP.NET 컨트롤 -2- (0) | 2010.03.11 |
ASP.NET 컨트롤 -1- (0) | 2010.03.04 |