Razor in WebMatrix(2) 코드의 재 사용

ASP.NET 4.0 2010. 7. 19. 12:12 Posted by 알 수 없는 사용자
 지난 아티클에서는 간단하게 Razor 를 이용해서 프로그램을 구동하는 방법에 대해 알아보았습니다. 그런데 이 아티클을 읽으신 개발자 분들은 아마도 , 자신이 만든 메서드를 Razor 로 꺼내서 사용하는 방법에 대해 궁금하셨을 겁니다.(저는 궁금했습니다.. 개발자니까!)  그래서 이번시간에는 간단하게 자신이 만든 객체를 활용해서 메서드를 재 활용해보는 방법을 알아보도록 하겠습니다.



 일단 WebMatrix에서 프로젝트를 생성하고 클래스파일을 생성합시다. 클래스 파일은 기본적으로 노출되어 있지 않으므로 , FileType 에서 All 을 선택해야 합니다. 이곳에서 cs 파일을 선택한후 이름을 선택하고 , OK 버튼을 눌러서 파일을 생성합시다. 

이제 해당 메서드를 렌더링 해서 보여줄 html 페이지를 만들 차례 입니다. 같은 순서대로 Test.cshtml 파일을 생성합시다.


메서드의 재활용을 위해서 저는 3개의 메서드를 static 으로 생성하였습니다.

//문자열 반환!

public static string GetHelloString()

{

    return "Hello Ciel!";

}

 

//문자열의 길이 반환(1개의 변수 받음)

public static string GetStringLength(string orgStr)

{

    return orgStr.Length.ToString();

}

 

//문자열의 길이 * int 변수 , (2개의 변수 받음)

public static string GetStringLengthMix(string orgStr , int mulVal)

{

    return (orgStr.Length * mulVal).ToString();

}


그후에 cshtml 에 razor 코드를 삽입하고 웹 페이지를 구동 시켜보도록 하겠습니다.
 
처음 코드를 구동시키면 대부분 이 에러를 보시게 될 겁니다. 이 에러를 이해하기 위해서는 이 webmatrix의 웹 프로젝트의 성격을 이해하셔야 합니다….만
.
.
.
사실 그닥 특별한 건 없습니다. 이 웹 메트릭스는 Visual Studio 에서 생성되는 프로젝트중 website 프로젝트의 형태를 띄고 있습니다. 그렇기 때문에 모든 컴파일 되는 cs 파일은 App_Code 폴더 안에 삽입되야 합니다.
 

이런 식으로 폴더를 이동시키고 구동시켜 보도록 하겠습니다.


<body>

    헬로우 문자열 반환 : @StringHandler.GetHelloString()

    <br/>

    문자열 길이 반환 : @StringHandler.GetStringLength(StringHandler.GetHelloString())

    <br/>

    여러개의 파라미터1 : @StringHandler.GetStringLengthMix("Hello" ,100  )

    <br/>

    여러개의 파라미터2 : @StringHandler.GetStringLengthMix(mulVal :  500 , orgStr : "Hello2" )

</body>


저는 이렇게 4개번 메서드를 구동시키도록 하였습니다.


정상적으로 호출되는것을 확인할수 있습니다. ^^

1~3 번 메서드는 일반적인 C#코드를 재 호출하는것으로써 특이할 부분이 없지만 ,
마지막 부분에서 처음 부분에 변수명을 명시해줌으로써 Json 형태로 변수를 선언해 줄 수 있다는 부분이 다소 흥미로운 부분이 될 거 같습니다.

Summary
이번 포스팅에서는 간단하게 cs코드에서 메서드를 선언하고 그 메서드를 호출하는 법을 살펴보았습니다. 사실 이정도만 하더라도 , 대부분의 작업을 대체 하는데는 무리가 없을겁니다. 다음 포스팅에서는 처음 포스팅에서 언급했던 부분인 webmatrix 헬퍼에 대해서 알아보도록 하겠습니다.