具有预编译视图的助手

时间:2013-03-05 16:33:40

标签: .net asp.net-mvc razor precompile razorgenerator

我正在使用RazorGenerator预编译我的观点。我还想使用Global Razor助手(在App_Code目录中的cshtml文件中定义)。但是,编译会引发以下错误

  

当前背景下不存在“KarbonHelper”这个名称

然而,intellisense似乎检测到辅助方法。我根据以下博客Razor Precompilation

整合了Razor预编译

另外我注意到帮助文件KarbonHelper.cshtml实际上是预编译到预期位置的.cs文件中

obj\CodeGen\App_Code\KoolHelper.cshtml.cs

欢迎任何想法或建议

2 个答案:

答案 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

相关问题