Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 什么可以';我不能从aspx.cs文件访问UserControl吗?_Asp.net_User Controls - Fatal编程技术网

Asp.net 什么可以';我不能从aspx.cs文件访问UserControl吗?

Asp.net 什么可以';我不能从aspx.cs文件访问UserControl吗?,asp.net,user-controls,Asp.net,User Controls,我有一个default.aspx文件和2个用户控件 用户控制代码1 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %> <%@ Register Src="~/WebUserControl2.ascx" TagName="wc1" TagPrefix="asp2" %> <asp2:wc1 I

我有一个default.aspx文件和2个用户控件

用户控制代码1

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

<%@ Register Src="~/WebUserControl2.ascx" TagName="wc1" TagPrefix="asp2" %>

<asp2:wc1 ID="control1" runat="server" />

您需要在usercontrol2中创建类型为usercontrol1的公共属性。在将承载两个控件实例的页面中,将usercontrol1的引用分配给usercontrol2的属性,该属性的类型为usercontrol1


无法访问的原因是,在usercontrol2中需要UserOCControl1的实例。使用上述方法可以解决此问题。

您需要在usercontrol2中创建usercontrol1类型的公共属性。在将承载两个控件实例的页面中,将usercontrol1的引用分配给usercontrol2的属性,该属性的类型为usercontrol1


无法访问的原因是,在usercontrol2中需要UserOCControl1的实例。使用上述方法可以解决此问题。

您需要通过控件的名称而不是其类进行访问:

control1.DoSomething();

一般来说,UserControl类在ASP.Net项目中不可见,因为编译会将添加到不同的程序集。

您需要通过控件的名称而不是其类进行访问:

control1.DoSomething();

一般来说,在ASP.Net项目中,UserControl类是不可见的,因为编译会将类添加到不同的程序集。

试着用另一种方法来做,您能从Ucrl:1访问Ucrl:2吗?公开公共属性并查看是否可以公开它:

从Ucrl:1>页面加载>

Ucr2.MyProp


有时,执行生成>清理解决方案,然后执行生成>重建解决方案并进行排序,或者至少让您走上正确的轨道。

尝试以另一种方式执行操作,您可以从Ucrl:1访问Ucrl:2吗?公开公共属性并查看是否可以公开它:

从Ucrl:1>页面加载>

Ucr2.MyProp


有时,执行生成>清理解决方案,然后生成>重新生成解决方案并进行排序,或者至少让您走上正确的轨道。

您看到的错误是什么?您希望从UserCtrl2还是从默认值访问UserCtrl1。该类甚至没有出现在intellisense中。我想从UC2中访问父用户控件。似乎无法识别该类。您看到的错误是什么?您希望从UserCtrl2还是从默认值访问UserCtrl1。该类甚至没有显示在intellisense中。我想从UC2中访问父用户控件。似乎不认识这个班。我试过了,但不起作用。出于某种原因,我创建的任何控件或页面似乎都对“外部世界”隐藏。我甚至无法从Default.aspx.cs文件访问WebUserControl。VSI可能有问题,它必须工作。您使用的是VS上的哪个版本?您有网站或web应用程序项目吗?此外,请检查您网站中的所有其他组件是否正确编译。有时我观察到,页面中的某些部分可能没有任何错误,但由于网站的其他部分出现错误,它可能无法正常工作。请检查你的网站是否编译完全没有任何错误。我在VS2010中试用过,效果很好,但是,我在VS2008中启动了一个新的解决方案,但没有。似乎需要重新设置我试过了,但没用。出于某种原因,我创建的任何控件或页面似乎都对“外部世界”隐藏。我甚至无法从Default.aspx.cs文件访问WebUserControl。VSI可能有问题,它必须工作。您使用的是VS上的哪个版本?您有网站或web应用程序项目吗?此外,请检查您网站中的所有其他组件是否正确编译。有时我观察到,页面中的某些部分可能没有任何错误,但由于网站的其他部分出现错误,它可能无法正常工作。请检查你的网站是否编译完全没有任何错误。我在VS2010中试用过,效果很好,但是,我在VS2008中启动了一个新的解决方案,但没有。看起来可能需要重置。我甚至无法从我的aspx页面访问这些控件。我认为默认情况下所有控件都在ASP名称空间中,但控件不显示在那里。。。我会尝试做一个干净的谢谢。我甚至不能从我的aspx页面访问这些控件。我认为默认情况下所有控件都在ASP名称空间中,但控件不显示在那里。。。我会试着做一个干净的谢谢。
control1.DoSomething();