我有以下標記錯誤在設計模式
<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>
代碼後面的Web用戶控件的Web用戶控制用了Itemplate:
[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>
當我運行該頁面時,它執行得很好。當我在設計模式下查看頁面時,出現以下錯誤:
Type 'System.Web.UI.UserControl' does not have a public property named 'Content'.
我該如何解決此問題?
編輯:我修改了代碼
'ParseChildren(真正的 「內容」)'沒有工作 –
怎麼樣[ParseChildren(真, 「內容」),PersistChildren(真)]。您可能必須關閉該頁面並重新打開該頁面才能解決任何緩存問題。你看過我鏈接的文章嗎?它解決了這種設計師問題。 –
也嘗試將內容的持久性模式設置爲PersistenceMode(PersistenceMode.InnerDefaultProperty) –