我正在使用RazorGenerator预编译我的观点。我还想使用Global Razor助手(在App_Code目录中的cshtml文件中定义)。但是,编译会引发以下错误
当前背景下不存在“KarbonHelper”这个名称
然而,intellisense似乎检测到辅助方法。我根据以下博客Razor Precompilation
整合了Razor预编译另外我注意到帮助文件KarbonHelper.cshtml实际上是预编译到预期位置的.cs文件中
obj\CodeGen\App_Code\KoolHelper.cshtml.cs
欢迎任何想法或建议
答案 0 :(得分:1)
问题是App_Code
代码生成器进程(由Microsoft的代码控制)创建了一个静态方法,而RazorGenerator创建了一个实例方法。
我仍然在寻找一个不涉及可怕黑客攻击的解决方案。
答案 1 :(得分:1)
首先尝试在Views文件夹中的.master
文件中的system.web.webPages.razor
部分下的名称空间部分下添加此项(使用项目基本名称空间的名称更改Web.config
- 这通常等于项目的名称 - 或者只是查看生成的文件MyProjectBaseNamespace
使用了哪个名称空间。
KoolHelper.cshtml.cs
如果仍然存在错误,请尝试在 <add namespace="MyProjectBaseNamespace.App_Code" />
中的帮助程序的第一行添加此指令:
App_Code
RazorGenerator将生成一个继承@* Generator: MvcHelper GeneratePrettyNames : true *@
的类,其中包含静态System.Web.WebPages.HelperPage
方法,类名与文件名相同。
有关指令的更多信息: https://github.com/RazorGenerator/RazorGenerator#special-razor-directives