Content 컨트롤은 마스터 페이지를 참조하는 중첩된 마스터 페이지 또는 콘텐츠 페이지에서 최상위 컨트롤이어야 합니다
라는 에러가 뜬다.
그럴 땐, aspx 파일에서 head와(style 태그와 script 태그만 남기고) body 태그를 과감하게 삭제하고, Content 컨트롤로 감싸주자.
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder" runat="Server">
</asp:Content>
또한 주의할 점은,
<asp:Content> 태그 내부에 <form id="form1" runat="server"> 태그를 중첩해서 사용할 수 없다.
그 이유는, ASP.NET 웹 페이지의 페이지 렌더링 모델과 웹 폼 (Web Forms)의 구조와 관련이 있다.
ASP.NET 웹 폼 모델은 웹 페이지를 서버 측에서 관리하고 이벤트 기반 모델을 사용하여 웹 페이지를 처리하는 데 중점을 둔다.
각 ASP.NET 페이지는 하나의 <form> 요소를 가지며, 이 <form> 요소 내에서 서버 측 이벤트 처리 및 상태 관리를 수행한다. 또한 페이지의 컨텐츠와 함께 페이지 자체의 상태 정보도 관리한다.
또한 ASP.NET 웹 페이지에서 일반적으로 사용되는 마스터 페이지 (Master Page)와 컨텐츠 페이지 (Content Page) 구조는 웹 페이지의 레이아웃과 컨텐츠를 분리하여 관리하는 데 사용된다.
마스터 페이지는 웹 페이지의 공통 레이아웃을 정의하고, 컨텐츠 페이지는 실제 컨텐츠를 정의한다.
즉, <asp:Content> 태그는 컨텐츠 페이지에서 사용되며, 이를 통해 마스터 페이지의 레이아웃을 정의한 <form> 요소 내에 컨텐츠를 삽입할 수 있는 것이다.
결론:
1. 마스터 페이지가 존재할 때, aspx 코드는 <asp:Content> 태그가 최상위 컨트롤로 존재해야 한다.
2. <form> 태그는 가장 큰 범위의 컨트롤이므로, 세부 컨트롤들은 form 태그 내부에 존재해야 한다.
'Skills > Asp.net' 카테고리의 다른 글
ASP.NET 페이지 라이프 사이클 Page Life Cycle (0) | 2023.09.19 |
---|---|
[Error] 예외 발생: 'System.Data.SqlClient.SqlException'(System.Data.dll) (0) | 2023.09.18 |
ASPX GetRowValues 메서드를 사용해서 특정 Row 값 접근하기 (0) | 2023.09.12 |
버튼 컨트롤 비활성화시키는 법(CSR, SSR) (0) | 2023.09.12 |
.NET Framework의 역대 버전 (0) | 2023.08.29 |