在我的App_code
中,我在FormatTelephone(string number)
中有一个名为Formatter.cshtml
的辅助函数。我试图通过@Formatter.FormatTelephone(number)
在部分视图中访问它。当我测试时,它说
编译器错误消息:CS0103:当前上下文中不存在名称“Formatter”
可能的原因是什么?谢谢!
答案 0 :(得分:7)
在将网站部署到另一台服务器上时遇到了这个问题。确保App_Code / Formatter.cshtml文件实际上已复制到服务器!我的错误是该文件的构建操作设置为“无”。右键单击该文件并选择Properties,然后将Build Action设置为“ Content ”。
注意:强>
如果您没有安装asp.net mvc 3/4,请确保以下dll位于您的bin文件夹中。
Scott Hanselman有一篇博文,内容涉及可能导致您的问题的原因。 BIN Deploying ASP.NET MVC 3 with Razor to a Windows Server without MVC installed
答案 1 :(得分:1)
以下内容适用于~/App_Code/Formatter.cshtml
:
@helper FormatTelephone(string number)
{
<div>Formatted @number</div>
}
然后在某些观点中:
@Formatter.FormatTelephone("123")
答案 2 :(得分:0)
我遇到了类似的问题。我的问题是我正在使用剃刀生成器,并且name.genic.cs文件的“ Build Action”属性为“ None”,并且需要为“ Compile”。根据答案,“ Build Action”属性或name.cs文件为“ Content”,这解释了为什么调用该方法的cshtml文件可以“看到”该方法,intellisense起作用了,我可以从cshtml文件。虽然generate.cshtml文件未编译。
将“生成操作”更改为“编译”。令我惊讶的是,这已经不是TBH。
我希望这可以节省一个小时的盲目重复。