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)>
会自动将开始和结束标记内的内容放入自定义控件的子控件集合中,使其易于使用。
以下代码按预期工作,但我似乎无法摆脱上面的 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)>
会自动将开始和结束标记内的内容放入自定义控件的子控件集合中,使其易于使用。