我可以在声明性帮助器中拥有私有函数或私有声明性帮助器吗?

Pet*_*rks 5 c# asp.net-mvc razor razor-declarative-helpers asp.net-mvc-3

可能重复:
在Razor ASP.Net MVC3中使用另一个View中的@helpers

我的环境:使用Razor的ASP.NET MVC3.

我在App_Data目录中的声明性帮助器中有一些可重用的视图逻辑,它们被定义为@helper bar() { /* markup */ }并且对于要使用的任何视图都是公共的.

此外,在常规Razor视图中,我可以编写"私人"助手:

@functions {
  public IHtmlString foo() { return new MvcHtmlString("foo"); }
}
Run Code Online (Sandbox Code Playgroud)

我希望在我的声明性助手中有"私有"函数,或者,我希望在我的声明性助手文件中有"私有"声明性助手.另一种方法是编写常规的辅助类 - 但在这种情况下我更喜欢标记,因为它更简洁,更易于维护.

你为什么要这样做?你有一个观点,你想要引入一些标记; 这是通过引用声明性帮助程序完成的.但该DH是一个文件,其中包含使用常见标记的其他DH.因此,您希望将所有共性转移到一个位置:一个"私有"声明函数/帮助程序,只有该文件中的DH才能看到.