CS0120:非静态字段,方法或属性'System.Web.UI.Control.Controls.get'需要对象引用

时间:2012-06-14 16:36:23

标签: c# asp.net .net visual-studio-2010

我知道有很多关于这个问题的问题,但似乎没有一个在我的情况下帮助我,所以我发布了另一个。

我获得了一个项目,并要求将项目拆分为单独的控件。最初项目中有一个名为“events”的文件夹引用了一个名为“EventsRssFeedControl”的控件。我的老板让我把事件和EventsRssFeedControl分开,并将它们放在自己的项目中。所以我做到了。我更改了所有名称空间,并编译了所有内容。但是当我尝试在那里导航时,我收到了一个错误。 描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并适当修改源代码。

编译器错误消息:CS0120:非静态字段,方法或属性'System.Web.UI.Control.Controls.get'

需要对象引用

来源错误:

<input type="hidden" name="selectedDate" value="<%= UMNEventsRssFeedControl.Controls.UMNEventsRssFeedControl.SelectedDateStr %>"/>

我的代码看起来像这样,我对它称之为“非静态”感到困惑,并且更加困惑为什么它不起作用。

        private static string _selectedDateStr;
    public static string SelectedDateStr
    {
        get { return _selectedDateStr; }
        set { _selectedDateStr = value; }
    }

它适用于旧项目,唯一改变的是命名空间和对新命名空间的调用。

2 个答案:

答案 0 :(得分:1)

问题实际上不在SelectedDateStr

UMNEventsRssFeedControl.Controls要求Controls的属性UMNEventsRssFeedControl的静态getter。显然,Controls是上述类的实例属性。

您需要提供UMNEventsRssFeedControl的实例才能使代码生效。

答案 1 :(得分:0)

您的命名空间和类名称相同。不要那样做。