C# 无法根据UserControl上的字符串表示错误创建System.Guid类型的对象
在.aspx页面上注册我的用户控件,如下所示:C# 无法根据UserControl上的字符串表示错误创建System.Guid类型的对象,c#,asp.net,user-controls,C#,Asp.net,User Controls,在.aspx页面上注册我的用户控件,如下所示: <uc:MyControl Id="MyControlId" runat="server"></uc:MyControl> 但我在分析时遇到此错误:“无法从其“Id”属性的字符串表示形式“MyControlId”创建类型为“System.Guid”的对象”。我怎样才能解决这个问题 注意:这不是我想要的解决方案: 用户控件中的MyMethod(): public void MyMethod() { BindInfo();
<uc:MyControl Id="MyControlId" runat="server"></uc:MyControl>
但我在分析时遇到此错误:“无法从其“Id”属性的字符串表示形式“MyControlId”创建类型为“System.Guid”的对象”。我怎样才能解决这个问题
注意:这不是我想要的解决方案:
用户控件中的MyMethod():
public void MyMethod()
{
BindInfo();
InfoArea.Style.Add("display", "block");
}
更换以下部件
MyControlId.MyMethod();
与
我找到了真正的解决办法。在我的用户控件的界面中有一个名为“Id”的Guid属性。因此,接口成员“Id”与用户控件的Id属性冲突。更改接口成员的名称解决了此问题 您的起始标记是
uc:MyControl
,而您的结束标记是/uc:GeneralInfo
它是否编译?对此表示抱歉。我在询问时更改了原始代码部分,只是错过了。没有编译问题。谢谢你提醒我。你能显示你的MyControl
类的代码吗?我添加了MyMethod()的代码。我无法使用标记名访问控件。您不能使用用户控件的id调用MyMethod
,而应使用相同的用户控件类name@zarathustra将命名空间导入到userControl@zarathustra我认为那不是真的<代码>生成类型为MyControl
且名称为MyControlId
的(生成的)字段。因此,是的,您确实引用了由Id
标记指定的usercontrol实例。如果您使用控件类名,那么您指的不是实例方法,而是静态方法。感谢您的回复。使用控件的名称解决了问题。
MyControlId.MyMethod();
MyControl.MyMethod();