Asp.net mvc 在_ViewStart.cshtml中定义的访问函数

Asp.net mvc 在_ViewStart.cshtml中定义的访问函数,asp.net-mvc,layout,view,razor,Asp.net Mvc,Layout,View,Razor,在ASP.MVC应用程序中,我在我的\u ViewStart.cshtml中定义了如下函数: @functions { public void Foo() { .... } } 当我尝试在我的视图中使用此函数时,我得到一个异常,即: 当前上下文中不存在名称“Foo” 我认为我在_ViewStart.cshtml中定义的所有内容都可以被定义为布局的所有视图访问 我错过了一些东西。。。 感谢您的帮助您可以将可重用函数放置在特殊App\u code文件夹的Razo

在ASP.MVC应用程序中,我在我的\u ViewStart.cshtml中定义了如下函数:

@functions
{
    public void Foo()
    {
      ....
    }
}
当我尝试在我的视图中使用此函数时,我得到一个异常,即: 当前上下文中不存在名称“Foo” 我认为我在_ViewStart.cshtml中定义的所有内容都可以被定义为布局的所有视图访问

我错过了一些东西。。。
感谢您的帮助

您可以将可重用函数放置在特殊
App\u code
文件夹的Razor视图中

例如,在
~/App\u code/Foo.cshtml
中,您可以声明一个
函数:

@functions {
    public static void Bar() {

    }
}
可从任何Razor视图访问:

@{Foo.Bar();}

还要注意,函数必须声明为静态

我无法访问任何MVC Html。如果我收到一条正常的错误消息,您必须将其作为参数传递:
publicstaticvoidbar(htmlhelperhtml){…}
。然后调用
@{Foo.Bar(Html);}
。我不明白这一切背后的原因以及为什么我不能使用_ViewStart.schtml。然而,您的解决方案正在发挥作用。谢谢