오늘은 Razor의 Helper와 Functions을 만드는 법에 대해 간략히 말씀드리고자 합니다.

MSDN를 보면 Helper는 웹에서 사용되는 여러 기능들을 손쉽게 이용 가능하도록 구조화시킨 모듈 이란 정의가 나오는데 코난님께서 설명하신
여기를 보시면 자세히 알 수 가 있습니다.



아무래도 많은 개발자들은 자주 사용하는 기능들을 자신만의 라이브러리로 만들어 두게 마련인데요 Razor 에서는 이럴 때 Helper와 Functions을 이용하시면 되겠습니다.
Helper의 경우는 특정 레이아웃을 리턴하므로 자주사용하시는 폼이나 출력양식을,
Functions은 자신만의 메소드를 클래스화해서 저장해 놓으실때 사용하시면 됩니다.


그럼 먼저 helper를 만드시는 방법부터 볼까요
파일-> 새로만들기 -> 웹사이트를 선택해서 웹사이트 선택 창을 띄웁니다.
여기서 Razor 웹사이트를 선택하시면 되지요 혹시 Razor 웹사이트가 포함되어 있지 않다면
코난님이 쓰신
여기를 보세요

그림1. Razor WebSite 선택




자 Razor웹사이트가 생성되었습니다. 이제 helper를 본격적으로 만들어보지요
helper를 만드실때는 App_Code폴더를 생성하고 아래에 넣어두셔야합니다.
그래야 VS2010에서 인텔리센스기능이 지원됩니다.
그럼 폴더를 추가하지요

그림2. App_Code폴더추가




폴더가 추가되었으니 실제 helper페이지를 추가합니다.
새항목을 추가하시면되는데 이때 양식을 Text 로 선택하시고 확장자를 cshtml로 변경하시면 됩니다.

그림3. 새 항목추가




이제 생성된 파일에 간단한 코딩을 하지요.
별내용은 없고 content를 받아서 해당 메세지를 그대로 페이지에 뿌려줍니다.

@helper MakeNote(string content) {
<div class="note" style="border: 1px solid black; width: 80%; padding: 5px; margin-left: 15px;">
<p>
<strong>내가 헬퍼 @content 이닷 !!!</strong>
</p>
</div>
}


이제 helper가 완성되었으니 실제 Default.cshtml페이지에 적용해보지요
파일이름을 클래스로 잡으시고 메소드를 선택하시면 됩니다.
아래 그림처럼 자동 인텔리센스가 지원되는게 보이시죠

그림4. helper 코딩



그럼 완성된 페이지를 보시죠

그림5. 사이트보기



Functions도 만드시는 방법은 위와 동일합니다.
동일한 방식으로 새항목을 추가하셔서 cshtml파일을 만드시고 아래와 같이 코딩하시면 됩니다.
파일이름을 정하실 때는 그 이름이 클래스 이름처럼 사용되므로 적절히 지어주세요
@functions{
    public static string GetTime(string msg)
    {
        return msg + " " + DateTime.Now.ToString();
    }
}


추가된 Functions는 Helper와 동일한 방식으로 이용이 가능합니다.
그림6. Functions코딩



그럼 마지막으로 적용된 화면을 보지요

그림7. 사이트보기


참고 : ASPNetWebPagesWithRazorSyntax-Book
http://blogs.msdn.com/b/timlee/archive/2010/07/30/using-functions-in-an-asp-net-page-with-razor-syntax.aspx





profile

안녕하세요 우주인입니다 ^^;;