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)>会自动将开口内的内容和结束标记到定制控件的子控件集合,使得它易于使用。