4

我正在使用RazorGenerator预编译我的视图。我还想使用 Global Razor 助手(在 App_Code 目录中的 cshtml 文件中定义)。但是编译抛出以下错误

当前上下文中不存在名称“KarbonHelper”

然而,智能感知似乎检测到了辅助方法。我已经按照以下博客Razor Precompilation 合并了 Razor 预编译

我还注意到,帮助文件 KarbonHelper.cshtml 实际上已预编译为预期位置的 .cs 文件

obj\CodeGen\App_Code\KoolHelper.cshtml.cs

欢迎任何想法或建议

4

2 回答 2

1

问题是App_Code代码生成器进程(由 Microsoft 的代码控制)为您创建了一个静态方法,而 RazorGenerator 为您创建了一个实例方法。

我仍在寻找不涉及可怕黑客攻击的解决方案。

于 2014-05-15T04:20:49.760 回答
1

首先尝试在 Views 文件夹system.web.webPages.razor中的文件部分下的命名空间部分下添加它(更改项目的基本命名空间的名称 - 这通常等于项目的名称 - 或者只需查看生成的文件中使用了哪个命名空间)。Web.configMyProjectBaseNamespaceKoolHelper.cshtml.cs

    <add namespace="MyProjectBaseNamespace.App_Code" />

如果仍然有错误,请尝试在帮助程序的第一行添加此指令App_Code

@* Generator: MvcHelper GeneratePrettyNames : true *@

然后,RazorGenerator 将生成一个继承System.Web.WebPages.HelperPage静态@helper方法的类,并且类名与文件名相同。

有关指令的更多信息: https ://github.com/RazorGenerator/RazorGenerator#special-razor-directives

于 2015-07-29T09:04:20.357 回答