Предупреждение дизайнера Visual Studio для пользовательского элемента управления веб-сервера: "Не допускается содержимое между открывающим и закрывающим тегами для элемента <control-name>"

Следующий код работает как задумано, но я не могу избавиться от предупреждения дизайнера VS выше.

Вот мой собственный класс управления веб-сервером:

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

Найдены несколько источников, которые указывают, что вышеуказанные атрибуты должны избавиться от предупреждения. Мне не повезло с этим. Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении?

1 ответ

Решение

Итак, с новым началом сегодня, после выходных, я наконец-то начал работать так, как планировал.

Я изменился <ParseChildren(True, "Content")> в <ParseChildren(False), PersistChildren(True)> в объявлении класса удалил Content собственности, и она начала работать, как и ожидалось.

Обратите внимание, что <ParseChildren(False), PersistChildren(True)> автоматически помещает содержимое внутри открывающих и закрывающих тегов в коллекцию дочернего элемента пользовательского элемента управления, что упрощает работу с ним.

Другие вопросы по тегам