4

我正在尝试使用一些扩展方法来对 DateTime 和 Int32 应用一致的格式 - 这在后面的代码中工作得非常好,但是我遇到了数据绑定问题。

我得到:

'System.DateTime' does not contain a definition for 'ToCustomShortDate'

为了

<%# ((ProductionDetails)Container.DataItem).StartDate.ToCustomShortDate() %>

(在用户控件中包含的网格视图的模板字段内)

即使我在用户控件的顶部包含定义扩展方法的命名空间:

<%@ import namespace="MyAssembly.Formatting" %>

有没有其他人遇到过这个问题,有什么办法可以解决吗?

编辑:我的错误,上面应该是:

<%@ import namespace="MyNamespace.Formatting" %>

IE。我没有错误地引用命名空间(在后面的代码中逐字使用)

4

3 回答 3

2

发现问题!我按照我的想法正确地包含了命名空间 - 但真正的问题是该应用程序仅包含 .NET 3.5 程序集而不是使用 3.5 编译器进行编译,丢失了 web.config 中的一些条目,当我创建一个空项目并在那里尝试(成功)!

错误消息有时会如此具有误导性......

于 2008-11-28T15:08:13.310 回答
1

关于我上面实现的扩展方法,我的命名空间应该是这样的吗?

namespace MyNamespace.Formatting
于 2008-11-19T10:57:04.503 回答
0

您应该从导入命名空间中删除程序集名称...

我猜您的扩展方法位于名为 Formatting 的命名空间中。

namespace Formatting
{

    public static class DateTimeExtender
    {
        public static string ToCustomShortDate(this DateTime date)
        {
            return date.ToString("dd MMM yyyy");
        }
    }

    public class ProductionDetails
    {
        public DateTime StartDate { get; set; }    
    }
}

在 ASPX 页面中...

<%@ Import Namespace="Formatting" %>
于 2008-11-19T10:27:45.107 回答