我有一个ASP.Net MVC Portable Are项目,包含纯C#代码,Razor视图(cshtml),javascript和CSS。它全部嵌入到区域项目的输出DLL中。
我想创建一个@helper函数,可以在该区域的cshtml视图中访问,然后我按照Scott Gu's blog post进行设置。根据Visual Studio intellisense和编译器,当我尝试访问这样的帮助程序时一切正常:
@Helpers.MyMethod("myInput");
但是当我尝试运行应用程序时,我收到了运行时错误,说明
“当前上下文中不存在'助手'这个名称”
我已将我的Helpers.cshtml文件放在MVC可移植区域项目的根目录中的App_Code文件夹中,并将构建操作设置为“嵌入式资源”(因为我需要处理其余的cshtml文件)。
我测试了将Helpers.cshtml文件放在我的ASP.Net MVC应用程序项目的App_Code文件夹中,然后它运行得很好,但是它不是在应用程序项目中使用帮助程序的选项,因为我这样做不希望从该区域到应用程序的依赖。
它也可以将@helper重写为@function并将其放在每个CSHTML视图中,但我想避免为每个视图重复这些。
所以我的问题是,当放置在便携式区域项目中时,应用程序似乎无法找到Helpers类,以及我可以做些什么才能在我的区域内拥有可以在剃刀视图中使用的剃刀辅助函数。 / p>