我有一个 Functions.cshtml 文件,其中包含所有用户定义的函数:
@functions {
public static string doSomething(string aString, string anotherString) {
...
}
}
在另一个页面 myPage.cshtml 中,我引用
doSomething:Functions.doSomething("dummy", "AnotherString");
当我从 Visual Studio 2015 中运行此方法时,该方法将被引用并执行。但是,当我将应用程序部署到我的网站并尝试执行 myPage.cshtml 时,我收到错误:
编译器错误消息:CS0117:“ASP.Functions”不包含“doSomething”的定义。
如何让网页像 VS 2015 中那样正常运行?
我相信如果其他 .cshtml 页面不在 App_Code 文件夹中,您就无法调用它们。
将所有函数保存在 .cshtml 文件中并不是最佳实践。如果您在 App_Code 文件夹中添加包含所有这些函数的类文件,那么您将能够访问它们,而无需导入。例如,如果
doSomething
是静态的并且该类称为 Functions
那么您可以这样调用它:
@Functions.doSomething("dummy", "AnotherString");