Visual Studio 自定义 Web 服务器控件的设计器警告 "Content is not allowed between the opening and closing tags for element <control-name>"

Visual Studio designer warning for custom web server control "Content is not allowed between the opening and closing tags for element <control-name>"

以下代码按预期工作,但我似乎无法摆脱上面的 VS 设计器警告。

这是我的自定义 Web 服务器控件 class:

<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)>

找到一些表明上述属性应该摆脱警告的来源。我没有运气。有人能给我指出正确的方向吗?

所以今天重新开始,周末过后,我终于让它按我的预期工作了。

我在 class 声明中将 <ParseChildren(True, "Content")> 更改为 <ParseChildren(False), PersistChildren(True)>,删除了 Content 属性,它开始按预期工作。

请注意,<ParseChildren(False), PersistChildren(True)> 会自动将开始和结束标记内的内容放入自定义控件的子控件集合中,使其易于使用。