2

我刚刚在一个 asp.net webapplication 项目中创建了新的用户控件。

创建后,源代码如下所示:

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

但是,一旦我向其中添加了一些额外的代码,第一行的错误就会立即出现:

上下文不是 'CS_SSR_RAIO.SSR_Project 的成员

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

任何帮助将不胜感激!

4

7 回答 7

2

我收到此错误是因为它找不到我的新用户控件的代码隐藏类。我有这个是因为我复制了一个用户控件,它位于一个命名空间中,我没有正确地添加到继承属性中。

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

于 2015-12-04T09:50:37.573 回答
1

我在以下情况下发生了这种情况:

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

1)我复制了一个现有的/正在运行的用户控件(如CTRL+单击、拖放、拖放)
2)我稍微修改了副本(将列表视图的数据源附加到不同的存储过程)


我将其修复如下:

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


如果你只看旧文件和新文件,就没有什么解释了——它们看起来是一样的。对我来说不同的是,复制文件失败,而复制文件内容成功。

我怀疑这可能与部分类有关,以及在网站上工作时无法访问所有部分的事实。我认为当涉及到项目时,您可以访问所有部分——如果是这样的话,我将能够看到导致问题的原因。

于 2014-01-22T17:35:07.290 回答
0

Ensure that the Control inherits from System.Web.UI.UserControl

The code behind (SSR_Project.ascx.vb) should have the following

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

Sorry that is C# syntax though .. but you get the picture :)

Edit: I think this is the Vb syntax ..

Public MustInherit Class SSR_Project Inherits System.Web.UI.UserControl

于 2012-10-09T11:19:30.183 回答
0

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

于 2014-11-18T14:35:44.053 回答
0

感谢 zybroxz 和 Konstantin D 的帮助。
最后,我从解决方案中删除了用户控件,再次添加它并将相同的代码粘贴到其中,一切正常。我确实注意到用户控件的设计器第一次尝试为空,第二次正确填充。

如果在创建用户控件期间出现问题并且此错误渗透到 pdp 文件中并因此无法删除,我不会感到惊讶...

于 2012-10-09T14:30:37.863 回答
0

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

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

在此处输入图像描述

于 2012-10-09T14:37:27.990 回答
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
于 2018-04-16T10:23:43.370 回答