오늘은 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

No. Subject Author Date Views
Notice [공지] 이렇게 SQLER에서 처음 글쓰기를 시작해 보는건 어떨까요? [1] 코난 2010.08.19 113010
78 VS 2010 SP1(new WebPI instraller) [5] 제라드(하영진) 2011.03.16 10004
77 mvcConf - ASP.NET MVC 온라인 컨퍼런스 코난(김대우) 2011.03.15 11351
76 [Tip] Razor에서 JSON for .NET을 이용한 JSON 데이터 형식 쉽게 만들기 [3] 달빛(안흥문) 2011.03.14 16802
75 Visual Studio 2010 서비스팩1 공식발표 [1] 코난(김대우) 2011.03.09 11012
74 Visual Studio로 ASP.NET Web Pages 를 쫌만 더~ 잘 써보자 [2] 코난(김대우) 2011.03.08 16960
73 [Tip] Razor에서 저장 프로시져의 실행 및 반환 값 받기 [5] 달빛(안흥문) 2011.03.07 10364
72 WebMatrix 론칭 세미나 발표 영상 - Session 1: 웹사이트 제작의 새로운 패러다임, WebMatrix - 김대우, 고영수, 김성호 코난(김대우) 2011.02.21 15339
71 [FAQ] ASP.NET Web Pages의 Html 문자열 보안 처리 - Html.Raw와 Request.Unvalidated 처리 코난(김대우) 2011.02.18 13539
70 WebMatrix 정식버전의 새로운 기능과 변경된 부분 소개 - 릴리즈 노트 코난(김대우) 2011.01.25 23358
69 드디어~ WebMatrix 정식버전에 맞게 한글 무료 eBook을 최신 코드로 수정 했습니다. 바로 다운로드 하세요~ [8] 코난(김대우) 2011.01.24 12878
68 [행사종료] WebMatrix 공식 발표 세미나!!! - 코난이도 나옵니다. ^_^ [16] 코난(김대우) 2011.01.17 17375
67 WebMatrix 정식버전이 나왔어요. [4] 대혀니 2011.01.14 9521
66 코드매쉬 행사에서 마이크로소프트가 WebMatrix 이벤트를 전세계에 생중계 합니다. [5] 코난(김대우) 2011.01.06 9945
65 [동영상] jQuery와 Razor 웹 개발 세미나 영상 / 김수영 MVP [2] 코난(김대우) 2010.12.13 16559
64 WebMatrix에서 단축 URL(URL Shortener) Helper 사용 코난(김대우) 2010.12.13 15624
63 WebMatrix의 내장 DB인 SQL Compact 4.0 에서 페이징 구현 코난(김대우) 2010.12.13 13224
62 WebMatrix Beta3의 새로운 기능과 변경된 부분 소개 - 릴리즈 노트 [3] 코난(김대우) 2010.12.08 18527
61 WebMatrix 베타3에 맞게 한글 무료 eBook을 최신 코드로 수정 했습니다. [2] 코난(김대우) 2010.12.08 14574
60 WebMatrix 베타3에 언어 깨짐 현상이 있는 듯 합니다.-해결됨 [2] 코난(김대우) 2010.12.03 11289
» Razor- Custom Helper와 Function 만들기 [1] 우주인(김재훈) 2010.12.03 12450





XE Login