是否可以在 Razor 布局 View 中声明函数或助手,并让子 Razor View 使用该函数?我的结构是:
_layout.cshtml -> 索引.cshtml
其中index.cshtml使用_layout.cshtml作为其布局。这是默认结构。
我希望能够将常用函数/帮助程序放在 _layout.cshtml 中,并在 index.cshtml 和使用 _layout.cshtml 的所有其他 View 中引用它们。除非我错过了一些东西,否则它不能开箱即用。
我知道。我应该为此使用编译的 AppHelpers 或 HtmlHelpers,但我可以预见到能够直接在 _layout.cshtml 文件中调整选择函数/帮助程序会非常方便。谢谢
最佳答案
不,这是不可能的。 @functions
仅在当前 View 内可见。
您可以使用@helper
,它可以放置在App_Code
文件夹中并在所有 View 中重复使用。
例如,您定义~/App_Code/MyHelpers.cshtml
:
@helper Foo()
{
...
}
然后在某些 View 中:
@MyHelpers.Foo()
但我会推荐编译的助手。它们是单元测试友好的并且与 View 引擎无关,当明天微软展示他们全新的 Blade View 引擎时,您将需要做 0 工作才能使用它们,而如果您针对 Razor 特定的东西(如 @functions)进行编码> 和 @helper
你必须移植它们。可能不是您关心的问题,但值得一提。
关于asp.net-mvc - @Functions 从父 Razor 布局继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7544460/