确定。这可能是一个非常愚蠢的问题,但无论如何我都会问它......
如何在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>
我需要采取哪些步骤才能使这些东西有效?我想我忽略了一些明显的东西?
由于
答案 0 :(得分:11)
您需要在页面顶部导入命名空间,正如其他人所说的那样
<%@ Import Namespace="Common.Extensions"%>
或者在web.config中全局
<system.web>
<pages>
<namespaces>
<add namespace="Common.Extensions"/>
</namespaces>
</pages>
</system.web>
如果您只需要访问公共模块(或静态类)的方法,只需导入应用程序的根命名空间。
答案 1 :(得分:8)
<%@ Import Namespace="Common.Extensions" %>
我相信你可以在web.config中为你的所有标记做到这一点。
答案 2 :(得分:2)
您必须在页面顶部导入命名空间:
<%@ Import Namespace="Common.Extensions"%>
答案 3 :(得分:0)
命名空间?
您应该在aspx标记中添加using / import指令