Visual Studio设计自定义Web服务器控件警告“的内容,不得为元素开始和结束标记之间的<控制名称>”
问题描述:
下面的代码按预期工作,但我似乎无法摆脱VS设计师上面的警告。Visual Studio设计自定义Web服务器控件警告“的内容,不得为元素开始和结束标记之间的<控制名称>”
这里是我的自定义Web服务器控件类:
<ParseChildren(True, "Content")>
Public Class Test
Inherits WebControl
Property Content As Control
Private Sub Test_Init(sender As Object, e As EventArgs) Handles Me.Init
Me.Controls.Add(Content)
End Sub
End Class
下面是标记:
<app:Test runat="server">
This is a test<br />
<asp:Button runat="server" Text="Click !" />
</app:Test>
我曾尝试在Content
属性下列属性的不同组合,但我不能摆脱警告:
<PersistenceMode(PersistenceMode.InnerProperty), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)>
找到几个来源这表明上述属性应该摆脱警告。这些我没有运气。有人能指点我正确的方向吗?
答
所以有一个新的开始今天,周末后,我终于得到了它的工作,我打算。
我在类声明中更改<ParseChildren(True, "Content")>
到<ParseChildren(False), PersistChildren(True)>
,删除Content
属性,它开始按预期工作。
注意<ParseChildren(False), PersistChildren(True)>
会自动将开口内的内容和结束标记到定制控件的子控件集合,使得它易于使用。