0

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

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

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

4

1 回答 1

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

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

<pages>
  <namespaces>
    <add namespace="Namespace.Containing.ExtensionMethod"/>
  </namespaces>
</pages>
于 2009-12-11T09:32:45.280 回答