为什么我的类不能从ASP.NET内联代码中获得?

时间:2009-12-11 09:27:23

标签: c# asp.net inline-code

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

我可以盲目地(没有IntelliSense)键入代码但它会编译正常,但是当访问页面时,它会抛出一些HttpCompiler异常,告诉我类/方法是未定义的。它建议我添加“使用”或参考。但我怎么能在代码视图中的.aspx页面上插入“using [namespace]”?这仅适用于C#代码,不适用于HTML代码。我绝对不需要引用,因为它都在同一个项目中,即使在同一个名称空间中也是如此。

有人知道为什么有时这不起作用吗?究竟是什么原因,我甚至不知道从哪里开始寻找问题,更不用说解决方案......

1 个答案:

答案 0 :(得分:4)

<%@ Import Namespace="Namespace.Containing.ExtensionMethod" %>

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

<pages>
  <namespaces>
    <add namespace="Namespace.Containing.ExtensionMethod"/>
  </namespaces>
</pages>