7

行。这可能是一个非常愚蠢的问题,但无论如何我都会问它......

如何在我的 ASP.Net 标记中使用扩展和实用方法?例如,(比如说)我有一个名为“ToExampleString()”的 DateTime 扩展方法(包含在我的 Common.Extensions 项目的 DateTimeExtensions 类中),我想在 ListView 的 ItemTemplate 的标记中使用它:

<ItemTemplate>
    <span><%# ((DateTime)Eval("DateStarted")).ToExampleString() %></span>
</ItemTemplate>

我收到以下错误:

“System.DateTime”不包含“ToExampleString”的定义,并且找不到接受“System.DateTime”类型的第一个参数的扩展方法“ToExampleString”(您是否缺少 using 指令或程序集引用?)

该页面根本看不到扩展方法。

同样,如何让我的页面标记知道实用程序类:

<span><%# ExampleUtility.ProcessDate(Eval("DateStarted") %></span>

我需要采取哪些步骤才能使这些东西发挥作用?我假设我忽略了一些愚蠢明显的东西?

谢谢

4

4 回答 4

11

正如其他人所说,您需要在页面顶部导入命名空间

<%@ Import Namespace="Common.Extensions"%>

或在您的 web.config 中全局

<system.web>
  <pages>
    <namespaces>
      <add namespace="Common.Extensions"/>
    </namespaces>
  </pages>
</system.web>

如果您只需要访问公共模块(或静态类)的方法,只需导入应用程序的根命名空间。

于 2009-10-19T16:11:48.330 回答
8
<%@ Import Namespace="Common.Extensions" %>

我相信您可以对 web.config 中的所有标记执行此操作。

于 2009-10-19T16:06:12.167 回答
2

您必须在页面顶部导入命名空间:

<%@ Import Namespace="Common.Extensions"%>
于 2009-10-19T16:08:25.013 回答
0

命名空间?

您应该在 aspx 标记中添加 using/import 指令

于 2009-10-19T16:07:07.610 回答