在我的App_code
中,我有一个FormatTelephone(string number)
在Formatter.cshtml
. 我试图在部分视图中访问它@Formatter.FormatTelephone(number)
。当我测试它时,它说
编译器错误消息:CS0103:名称“格式化程序”在当前上下文中不存在
它的可能原因是什么?谢谢!
在我的App_code
中,我有一个FormatTelephone(string number)
在Formatter.cshtml
. 我试图在部分视图中访问它@Formatter.FormatTelephone(number)
。当我测试它时,它说
编译器错误消息:CS0103:名称“格式化程序”在当前上下文中不存在
它的可能原因是什么?谢谢!
在将站点部署到另一台服务器上时,我遇到了这个确切的问题。确保 App_Code/Formatter.cshtml 文件实际复制到服务器!我的错误是该文件的构建操作设置为“无”。右键单击该文件并选择“属性”,然后将“构建操作”设置为“内容”。
笔记:
如果您没有安装 asp.net mvc 3/4,请确保以下 dll 在您的 bin 文件夹中。
Scott Hanselman 有一篇关于可能导致您的问题的博客文章。 BIN 将带有 Razor 的 ASP.NET MVC 3 部署到未安装 MVC 的 Windows 服务器
以下对我有用~/App_Code/Formatter.cshtml
:
@helper FormatTelephone(string number)
{
<div>Formatted @number</div>
}
然后在某些方面:
@Formatter.FormatTelephone("123")
我遇到了类似的问题。我的问题是我使用的是剃须刀生成器,而 name.generated.cs 文件的“构建操作”属性是“无”,它需要是“编译”。根据答案,“构建操作”属性或 name.cs 文件是“内容”,这解释了为什么调用该方法的 cshtml 文件可以“看到”该方法,智能感知有效,我可以从cshtml 文件。生成的.cshtml 文件虽然没有编译。
将“构建操作”更改为“编译”。我很惊讶这不是已经 TBH。
我希望这可以节省一个小时的无意识重复。