개발을 하다가 발견한 오류인데 이걸로 하루종일 삽질을 했었다.
원래 html 페이지로 만들면 각 태그에 지정한 id값이 본인이 설정한 id 그대로 넘어가는데 asp.net에서 master page를 적용한 페이지에서는 id 값이 다르게 전달되는 현상을 발견했다.
말 보다 살짝 코드로 예를 들면
<html>
<head>
<script>
if($("#btn1").onclick){
// 버튼 눌림 이벤트
}
</script>
</head>
<body>
<button id = "btn1" type="button">
<span>확인 버튼</span>
</button>
</body>
</html>
위 HTML 코드에서 script 태그 안의 if 문은 동작이 할 것이다. (문법적인 오류가 있을 수 있으나 대략적인 수도코드로 작성했음.)
하지만 asp.net에서 master page를 적용했을 땐 말이 달라진다.
layout.Master
. . .
<asp:Contentholder runat='server' ID='BODY'>
<!-- 여기에 본문이 들어감 -->
</asp:Contentholder>
. . .
layout.Master 페이지를 적용한 .aspx 파일
<script type='text/javascript'>
if($('#btn1').onclick){
// 버튼 눌림 이벤트
}
</script>
<asp:Content id="BODY" runat='server'>
. . .
<button id='btn1' type='button'>
<span>버튼1</span>
</button>
. . .
</asp:Content>
간단하게 위 처럼 예를 들면 위 코드에서 script 태그 안의 if 문은 작동하지 않는다..
왜냐하면 하단에 asp 태그 안에서 분명 button 의 id 값을 btn1로 설정했지만 master page를 적용 함으로 인해 id값이 앞에 뭔가가 추가로 붙기 때문이다.
이는 f12를 통해 직접 확인하면 이해가 잘 될 것이다.
우선 해결책으로 master page를 적용한 것들을 다시 롤백하고 진행하는 중이다.
이에 대한 자세한 내용이나 추가할 내용이 있으면 수정하겠다.
'Web > ASP.NET' 카테고리의 다른 글
| [ASP.NET] 버튼이나 다른 태그들의 id 값을 못 찾아오는 경우 (0) | 2022.10.21 |
|---|---|
| [ASP.NET] 서버 컨트롤 (HTML 서버 컨트롤, 웹 서버 컨트롤) (0) | 2022.10.21 |
| [ASP.NET] asp.net 파일 종류 (0) | 2022.10.21 |
| [ASP.NET] Page 클래스 이벤트 (0) | 2022.10.21 |
| [ASP.NET] onclick 와 onserverclick 의 차이 (1) | 2022.10.21 |