#if #endif를 이용한 ASP.NET MVC View Debug모드 분리
예전에 "#if#end 또는 Conditional Attribute의 적절한 사용"라는 내용으로 블로 포스팅 한적이 있다. #if #endif의 사용법은 해당 포스팅을 참고하면 좋을 것이다. 이번에는 ASP.NET MVC 개발을 하면서 View에 디버깅 모드를 분리하는 방법에 대해 알아 보도록 하겠다.
@{ #if DEBUG // 해당 코드 #else // 해당 코드 #endif } |
[코드 1 - Index.cshtml 파일]
위 [코드1]은 View에서 서버 코드를 작성 할때 처럼 "@{ }"를 이용해서 디버깅모드 설정을 한 것이다. 그러나 이건 마크업형태로 디버깅하기에는 매우 불편한 방법이다. 그래서 좀더 스마트 한 방법을 알아 보도록 하겠다. 이 방법을 사용하려면 기본적으로 "확장메서드(Extension Methods)"의 개념을 알고 있을 필요가 있다. 사용법 모른다면 일전에 제가 블로그 포스팅한 내용 "확장메서드(Extension Methods) 사용법" 참고 하길 바란다.
public static class ExtensionMethods { public static bool IsDebug(this HtmlHelper htmlHelper) { #if DEBUG return true; #else return false; #endif } } |
[코드 2 - cs파일에 HtmlHelper의 확장 메서드]
위 [코드 2]처럼 HtmlHelper의 확장메서드를 만든다. 이는 간단하게 디거깅 모드인지 아닌지를 확인하는 메서드이다.
@if (Html.IsDebug()) { <div>Debug 모드</div> } else { <div>Release 모드</div> }
|
[코드 3 - Index.cshtml 파일]
위 [코드 3]은 [코드 2]에서 만든 확장메서드를 사용하는 방법을 나타낸 것이다.
View에서 디버깅모드를 체크할때에는 [코드 1]을 이용하는 것 보다 확장 메서드를 이용하는 것이 좀더 스마트 한 방법이 아닐까 생각이 든다.