2013-03-05 7 views
4

Я использую RazorGenerator для предварительной компиляции моих просмотров. Я также хочу использовать помощники Global Razor (определенные в файлах cshtml в каталоге App_Code). Однако компиляция подбрасывает со следующей ошибкойПомощники с предварительно скомпонованными видами

Название «KarbonHelper» не существует в текущем контексте

Однако IntelliSense, кажется, обнаружить вспомогательные методы. Я включен Razor Препроцессинг по следующему блог Razor Precompilation

Также я заметил, что вспомогательный файл KarbonHelper.cshtml фактически скомпилированным в файл .cs в ожидаемом месте

obj\CodeGen\App_Code\KoolHelper.cshtml.cs 

Любого идеи или предложения приветствуются

ответ

1

Проблема заключается в том, что процесс генератора кода App_Code (контролируемый кодом Microsoft) создает вам статический метод, тогда как RazorGenerator создает вам метод экземпляра.

Я все еще ищу исправить это, что не связано с ужасным взломом.

1

Сначала попробуйте добавить это под разделом пространств имен в разделе system.web.webPages.razor в файле Web.config в папке «Виды» (измените «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