블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday



ASP.NET MVC로 개발하다보면 RenderBody라는 녀석을 많이 봤을 것이다. 이와 비슷한게 RenderSection과 RenderPage가 있다. 이녀석들은 WebPageBase 클래스에 포함된 메소드들 이다. 

그럼 
RenderBody는 MVC템플릿으로 프로젝트를 생성하면 자동으로 _layout.chhtml 파일에 body태그에 들어가 있는 것을 봣을 것이다. 이는 많이 봤을 테니 따로 설명은 하지 않겠다. 그리고 RenderPage라는 녀석은 Html.RenderPartial과 같은 역활을 한다. 다만 다른건 RenderPage은 페이지가 있는 경로로 파일을 부르고, Html.RenderPartial은 파일이름으로 찾아 뿌려준다. 아래 예제를 보면 감이 올 것이다. 

@RenderPage("test.chhmlt");

@Html.RenderPartial("test"); 

[소스 1 - RenderPage와 Html.RenderPartial 사용법]

(** Html.RenderPartial에 대한 내용 설명은 MSDN을 참고 하길 바란다.)


자 그럼 RenderSection은 어떻게 사용하는가? 어떻게 사용할까에 대해서 생각해 보자. 일단 저 이렇게 사용 할 수 있을 것같다. 우리가 웹페이지들을 개발하다 보면, 어쩔수 없이 body태그 안에 스크립트문을 넣어야 하는 일이 많이 생길 것이다. 누가 그랬는가...body 태그 중간에 스크립트가 들어가있으면 페이지 렌더링 되는데 시간이 걸린다고.... 그럼 RenderSection녀석을 이용해서 해결해 보자!!


[그림 1]

위 [그림 1]과 같이 어쩔수 없이 body태그 중간에 스크립트가 들어가 있는 모습이다.

[그림 2]


 위 [그림 2]는 ASP.NET MVC로 개발해 봤던 분이라면 금방 이해할 수 있을 것이다.
일단 _Layout.cshtml 부분에 @RenderSection 선언해주고, 이름과 필수 요소를 할지를 정의 한다. 첫번째 파라미터가 이름이고, 두번째 파라미터가 필수 요소이다. 필수 요소를 true로 지정하면, Layout을 참조하는 페이지는 모두 RenderSection 선언한 section 블록을 만들어야한다(안그러면 에러난다.). false로 하면 있으나, 없으나 상관없다.



[그림 3]


[그림 3]은 [그림2]를 실행 시켜 소스보기를 해서 본 화면이다.


사용이 아주 간단해서 더이상 말할게 없다. 

스크립트 블록을 나누는거 외에도 이를 이용하면 좀더 View를 세부적으로 나누기가 편할것 같다.






Posted by happydong
, |