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

问题描述 投票:0回答:2

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

我收到了一个项目,并要求将该项目拆分为单独的控件。 最初,项目中有一个名为“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; }
}

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

c# asp.net .net visual-studio-2010
2个回答
1
投票

问题其实不在

SelectedDateStr

UMNEventsRssFeedControl.Controls
正在请求
Controls
的属性
UMNEventsRssFeedControl
的静态 getter。显然,
Controls
是所提到的类的实例属性。

您需要提供

UMNEventsRssFeedControl
的实例才能使代码正常工作。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.