5

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

我的环境:带有 Razor 的 ASP.NET MVC3。

我在App_Data目录中的声明性帮助程序中有一些可重用的视图逻辑,它们被定义为@helper bar() { /* markup */ }公开的,供任何视图使用。

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

@functions {
  public IHtmlString foo() { return new MvcHtmlString("foo"); }
}

我想在我的声明性帮助程序中包含“私有”函数,或者,我想在我的声明性帮助程序文件中包含“私有”声明性帮助程序。另一种方法是编写常规帮助程序类——但在这种情况下我更喜欢标记,因为它不那么冗长且更易于维护。

你为什么要这样做?你有一个视图,你想引入一些标记;这是通过引用声明性助手来完成的。但是该 DH 位于一个文件中,其中包含使用通用标记的其他 DH。因此,您希望将所有共性移到一个地方:一个“私有”声明性函数/助手,只有该文件中的 DH 才能看到。

4

0 回答 0