可能重复:
Using @helpers from another View in Razor ASP.Net MVC3
我的环境:带有Razor的ASP.NET MVC3。
我在App_Data
目录中的声明性帮助器中有一些可重用的视图逻辑,它们被定义为@helper bar() { /* markup */ }
并且对于任何视图都是公共的。
此外,在常规的Razor视图中,我可以编写“私人”助手:
@functions {
public IHtmlString foo() { return new MvcHtmlString("foo"); }
}
我想在声明性帮助器中使用“私有”函数,或者,我希望在声明性帮助文件中包含“私有”声明性帮助器。另一种方法是编写常规的辅助类 - 但在这种情况下我更喜欢标记,因为它更简洁,更容易维护。
你为什么要这样做?你有一个观点,你想要引入一些标记;这是通过引用声明性帮助程序完成的。但该DH是一个文件,其中包含使用常见标记的其他DH。因此,您希望将所有共性转移到一个地方:一个“私有”声明函数/帮助程序,只有该文件中的DH才能看到。