2013-03-05 3 views
4

내 뷰를 미리 컴파일하기 위해 RazorGenerator을 사용하고 있습니다. 또한 Global Razor 도우미 (App_Code 디렉토리의 cshtml 파일에 정의 됨)를 사용하려고합니다. 컴파일이 다음과 같은 오류프리 컴파일 된 뷰를 가진 도우미

으로 던졌습니다 그러나 이름 'KarbonHelper'는 인텔리이 헬퍼 메소드를 감지하는 것 같다 그러나 현재 컨텍스트

에 존재하지 않습니다. 나는 헬퍼 파일 KarbonHelper.cshtml 실제로 예상 위치

obj\CodeGen\App_Code\KoolHelper.cshtml.cs 

어떤을의 .cs 파일에 미리 컴파일 된 것을 알 수 Razor Precompilation

또한 다음 블로그에 따라 면도기 사전 컴파일을 통합 한 아이디어 또는 제안을 환영합니다

답변

1

문제는 코드 생성기 프로세스 App_Code (Microsoft의 코드에 의해 제어 됨)이 정적 메서드를 만드는 반면 RazorGenerator는 인스턴스 메서드를 생성한다는 것입니다.

나는 여전히 끔찍한 해킹을 포함하지 않는 문제를 찾고 있습니다.

1

먼저 Views 폴더의 Web.config 파일에서 system.web.webPages.razor 섹션의 네임 스페이스 섹션 아래에 추가하십시오 ("MyProjectBaseNamespace"를 프로젝트의 기본 네임 스페이스 이름으로 변경하십시오. 이는 일반적으로 프로젝트의 네임 스페이스와 동일합니다. name - 또는 생성 된 파일 KoolHelper.cshtml.cs에서 사용 된 네임 스페이스를 사용하십시오.).

<add namespace="MyProjectBaseNamespace.App_Code" /> 

여전히이있는 경우 오류의 App_Code에서 도우미의 첫 번째 줄에서이 지시어를 추가하려고 :

@* Generator: MvcHelper GeneratePrettyNames : true *@ 

RazorGenerator는 정적으로 System.Web.WebPages.HelperPage을 상속하는 클래스를 생성합니다 @ 도우미 메서드 및 클래스 이름이 파일 이름과 동일해야합니다.

지침에 대한 자세한 정보 : https://github.com/RazorGenerator/RazorGenerator#special-razor-directives