Razor视图.NET MVC中的全局非命名空间@helper

本文关键字:全局 命名空间 @helper 视图 NET MVC Razor | 更新日期: 2023-09-27 18:25:16

使用MVC 4:在不让@helper部分在每个使用它的视图中内联的情况下,是否有可能实现以下目标:

@helper _(string msg) {
    @msg
}
<p>@_("Hello")</p>

这样布局文件就有了它,或者它被放在了其他共享的地方?即在给定的视图中仅此:@_("Hello")

我试过:

  • 将其添加到Views/Shared/_Layout.cshtml(不起作用)
  • 将其添加到App_Code(有效,但有名称空间)
  • 在谷歌上搜索几个小时寻找提示

我知道我可以只使用一个名称空间,但为了可读性和更短的代码,我真的喜欢避免这样做。

一般来说,我对.NET还是比较陌生的,所以如果有任何帮助,我将不胜感激。

Razor视图.NET MVC中的全局非命名空间@helper

这可以在不创建帮助程序的情况下解决。使用扩展方法。

namespace WebApplication1
{
  public static class WebViewPageExtensions
  {
    public static IHtmlString _(this WebViewPage page, string msg)
    {
      return new HtmlString(msg);
    }
  }
}

然后在你所有的观点:

<p>@_("Hello")</p>