C# 为什么@helper中没有扩展?

C# 为什么@helper中没有扩展?,c#,asp.net-mvc,razor,extension-methods,C#,Asp.net Mvc,Razor,Extension Methods,我创建了一个视图扩展,如下所示: namespace MyProject { public static class PageExtensions { public static HtmlString MyExt(this WebViewPage page) { 现在我可以在Razor视图中键入: @this.MyExt() 请注意,我的所有视图都包含名称空间,在该名称空间中通过Web.config声明: <system.web.webP

我创建了一个视图扩展,如下所示:

namespace MyProject
{
    public static class PageExtensions
    {
        public static HtmlString MyExt(this WebViewPage page)
        {
现在我可以在Razor视图中键入:

@this.MyExt()
请注意,我的所有视图都包含名称空间,在该名称空间中通过Web.config声明:

<system.web.webPages.razor>
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="MyProject" />
但是那里没有分机。我得到的错误是:

编译器错误消息:CS1061:“System.Web.Mvc.WebViewPage”不存在 包含“MyExt”的定义,但不包含扩展方法 “MyText”接受类型为的第一个参数 可以找到“System.Web.Mvc.WebViewPage”(您是否缺少使用 指令或组件引用?)


我缺少什么?

确保您修改的web.config是“/Views/web.config”

Visual Studio需要重新编译项目,然后才能识别您添加到视图中的帮助程序,我怀疑这是您的问题。

问题在于命名空间。删除包含PageExtensions类的namespace指令修复了它。为什么会这样?我不确定

我缺少什么?
可能是程序集引用或using指令?
@helper MyHelper() {
    var page = (WebViewPage) CurrentPage;
    <div>
        @page.MyExt()
    </div>
}