Context不是asp.net usercontrol的成员

时间:2012-10-09 10:55:03

标签: asp.net web-user-controls

我刚刚在asp.net webapplication项目中创建了新的usercontrol。

创建后,源代码如下:

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="SSR_Project.ascx.vb" Inherits="CS_SSR_RAIO.SSR_Project" %>

但是只要我添加一些额外的代码,第一行的错误就是:

  

Context不是'CS_SSR_RAIO.SSR_Project

的成员

我确实有其他用户控件似乎具有完全相同的声明,但没有出现此错误。

非常感谢任何帮助!

7 个答案:

答案 0 :(得分:2)

我收到此错误,因为它无法找到我的新usercontrol的代码隐藏类。我有这个,因为我复制了一个usercontrol,它在一个Namespace中,我没有正确地添加到Inherits属性。

添加了名称空间前缀,它又开始工作了:)

答案 1 :(得分:1)

在以下情况下,我发生了这件事:

在VS2008中使用网站网站(而不是项目):

1)我复制现有/正常运行的用户控件(如 CTRL + Click,Drag,Drop)
2)我稍微修改了副本(将listview的数据源附加到不同的存储过程)


我将其修复如下:

1)创建一个新的用户控件(在VS中添加新项目)
2)打开我最初复制的.ascx,这次只需复制所有标记,然后将其粘贴到新用户控件的.ascx中。
3).ascx.vb文件相同 - 打开要复制的文件,复制所有代码,然后将其粘贴到新用户控件的.ascs.vb文件中


如果你只看旧的和新的文件,就没有解释它 - 它们看起来完全相同。我的不同之处在于,复制文件失败了,而复制文件的内容却成功了。

我怀疑这可能与部分类有关,而且当您在网站网站上工作时无法访问所有部分。我认为当谈到项目时,你可以访问所有部分 - 如果是这样的话,我将能够看到是什么导致了问题

答案 2 :(得分:0)

确保Control继承自System.Web.UI.UserControl

背后的代码(SSR_Project.ascx.vb)应具有以下内容

public partial class SSR_Project : System.Web.UI.UserControl

很抱歉这是C#语法虽然..但是你得到了图片:)

编辑:我认为这是Vb语法..

  

Public MustInherit Class SSR_Project       继承System.Web.UI.UserControl

答案 3 :(得分:0)

感谢您的帮助,zybroxz和Konstantin D.
最后,我从解决方案中删除了usercontrol,再次添加它并将相同的代码粘贴到其中,这一切都运行良好。我确实注意到usercontrol的设计者在第一次尝试时是空的,第二次是正确填充的。

如果在创建usercontrol期间出现问题,我不会感到惊讶,这个错误会导致pdp文件中的错误,因此无法删除...

答案 4 :(得分:0)

您可以访问您的上下文but your class must inherit from UserControl

链接:http://msdn.microsoft.com/fr-fr/library/system.web.ui.control.context(v=vs.80).aspx

enter image description here

答案 5 :(得分:0)

复制现有控件然后粘贴和编辑可能会导致此问题。 查看.aspx.vb页面顶部的“Web表单设计器生成代码”块。 必须列出每个控件: 即“受保护的事件lblX As System.Web.UI.WebControls.Label” 将粘贴的控件添加到列表中,你很高兴

答案 6 :(得分:0)

对我来说,在VB.Net中,问题是:

如果您有此错误:error BC30456: "AnyPublicMethodOrProperty" is not a member of 'UserControl'

因为用户控件被声明为通用UserControl而不是完全继承的类,因此,在设计器父页面中(例如:default.aspx.designer.vb)应该使用确切的类名,而不是继承的UserControl类。

所以...尝试在设计器父页面中找到它:

'''<summary>
'''UcYourControlName control.
'''</summary>
'''<remarks>
'''Auto-generated field.
'''To modify move field declaration from designer file to code-behind file.
'''</remarks>
Protected WithEvents ucYourControlName As Global.System.Web.UI.UserControl

并将其替换为:

'''<summary>
'''UcYourControlName control.
'''</summary>
'''<remarks>
'''Auto-generated field.
'''To modify move field declaration from designer file to code-behind file.
'''</remarks>
Protected WithEvents ucYourControlName As Global.Wherever.Your.UserControl.Namespace.Is.Located.UcYourControlNameClass