我知道有很多关于这个问题的问题,但似乎没有一个在我的情况下帮助我,所以我发布了另一个。
我获得了一个项目,并要求将项目拆分为单独的控件。最初项目中有一个名为“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; }
}
它适用于旧项目,唯一改变的是命名空间和对新命名空间的调用。
答案 0 :(得分:1)
问题实际上不在SelectedDateStr
。
UMNEventsRssFeedControl.Controls
要求Controls
的属性UMNEventsRssFeedControl
的静态getter。显然,Controls
是上述类的实例属性。
您需要提供UMNEventsRssFeedControl
的实例才能使代码生效。
答案 1 :(得分:0)
您的命名空间和类名称相同。不要那样做。