У меня есть пользовательский веб-элемент управления со следующей разметкой
<table>
<tr>
<td>
<h1>
<%= this.Title %></h1>
</td>
</tr>
<tr>
<td>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</td>
</tr>
<tr>
<td>
<h2>
Footer</h2>
</td>
</tr>
</table>
код:
[ParseChildren(true, "Content"), PersistChildren(true)]
public partial class WebUserControl1 : System.Web.UI.UserControl
{
public string Title { get; set; }
[PersistenceMode(PersistenceMode.InnerDefaultProperty),
TemplateContainer(typeof(ContentContainer)),
TemplateInstance(TemplateInstance.Single),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ITemplate Content { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
PlaceHolder1.Controls.Clear();
var container = new ContentContainer();
this.Content.InstantiateIn(container);
PlaceHolder1.Controls.Add(container);
}
}
public class ContentContainer : Control, INamingContainer
{
}
и использовать на странице, подобной следующей
<%@ Register Src="WebUserControl1.ascx" TagName="WebUserControl1" TagPrefix="uc1" %>
<uc1:WebUserControl1 ID="WebUserControl11" runat="server" Title="The Title">
<Content>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></Content>
</uc1:WebUserControl1>
Когда я запускаю страницу, она работает хорошо. при просмотре страницы в режиме «Дизайн» я получаю следующую ошибку:
Тип 'System.Web.UI.UserControl' не имеет открытого свойства с именем
'Содержание'. * * 1013
Как я могу решить эту проблему?
РЕДАКТИРОВАТЬ: я изменил код