代码之家  ›  专栏  ›  技术社区  ›  ygoe

为什么ASP.NET内联代码中没有我的类?

  •  0
  • ygoe  · 技术社区  · 15 年前

    我有一个用VS2008编写的ASP.NET(C#)应用程序,它使用代码隐藏文件和母版页。还有其他类和扩展方法都在同一名称空间中。现在,在某些页面上,我的类和方法未从内联代码中定义,例如<%=MyClass.MyMethod().ExtensionMethod()%>。我会写<%=MyNamespace.MyClass.MyMethod()%>,但是1.它太长了,2.我不能使用扩展方法。在大多数页面上,它是有效的,但在某些页面上则不然。

    虽然我可以盲目地(不使用IntelliSense)输入代码,它可以很好地编译,但是当访问页面时,它会抛出一些HttpCompiler异常,告诉我类/方法未定义。它建议我添加一个“使用”或引用。但是如何在代码视图的.aspx页面上插入“using[namespace]”?这仅在C代码中可用,在HTML代码中不可用。我当然不需要引用,因为它都在同一个项目中,甚至在同一个命名空间中。

    有人知道为什么有时候这样不行吗?到底是什么原因,我甚至不知道从哪里开始寻找问题,更不用说解决方案了。。。

    1 回复  |  直到 15 年前
        1
  •  4
  •   Darin Dimitrov    15 年前
    <%@ Import Namespace="Namespace.Containing.ExtensionMethod" %>
    

    或者,如果希望它在所有页面上全局应用,可以使用web.config:

    <pages>
      <namespaces>
        <add namespace="Namespace.Containing.ExtensionMethod"/>
      </namespaces>
    </pages>
    
    推荐文章