12/21 WebMatrix

@RenderPage를 통해 기존에 우리가 include 하던가 UserControl로 사용하던 footer, header 등을 넣을 수 있고 파일명이 _로 시작하면 외부에서의 접근은 막으면서 내부에선 별다른 제약 없이 사용할 수 있다


    @RenderPage("/Shared/_Header.cshtml")
    <h1>Index Page Content</h1>
    <p>This is the content of the main page.</p>
    @RenderPage("/Shared/_Footer.cshtml")
  

@RenderSection 을 통해 특정 페이지가 아닌 말 그대로 Section 만을 가져올 수도 있고 아래의 PageData 값에 따라 특정 영역을 Render 할 수도 있다

<!-- _Layout.cshtml -->

    <div id="header">
        @RenderSection("header")
    </div>
    <div id="list">
        @RenderSection("list")
    </div>
    <div id="main">
        @RenderBody()
    </div>
    <div id="footer">
        &amp;copy; 2010 Contoso Pharmaceuticals. All rights reserved.
    </div>


<!-- ContentPage.cshtml -->
@{
    Layout = "/Shared/_Layout.cshtml";
}

@section header {
    <div id="header">
        Chapter 3: Creating a Consistent Look
    </div>
}
@section list {
    <ul>
        <li>Lorem</li>
        <li>Ipsum</li>
        <li>Dolor</li>
        <li>Consecte</li>
    </ul>
}

ContentPage에서 MasterPage에 값을 넘길땐 PageData를 이용해 간단히 구현가능

_PageStart.cshtml 는 하위폴더 페이지들에 영향을 미치는 PageData를 만들 수 있다.
재밌는건 폴더마다 _PageStart.cshtml를 둘 수 있으며 마치 클래스를 상속하듯 이미 상위폴더의 _PageStart.cshtml에서 설정한 PageData 값을 하위 폴더에서 재설정하면 해당 값이 같은 폴더 안의 페이지들에 적용되고 그 외의 PageData[Key]=Value 에 대해선 상위 페이지에서 정의한 값을 그대로 유지한다…. 말이 어렵네 😕

Themes 는 ASP.NET Web Helpers Library 1.0 을 설치해야 사용 가능하다는데… 딱히 써본적 없다

그 밖에 Twitter, Facebook, Chart, Video 헬퍼들을 알아봤던 시간

%d bloggers like this: