UserControl没有名为ContentTemplate的公共属性

Ian*_*oyd 10 asp.net visual-studio-2010 visual-studio

这个问题之前已被问过几十次; 但从未解决过.

我有一个 UpdatePanel

<asp:UpdatePanel ID="UpdatePanelSetupToolbar" runat="server">
   <ContentTemplate>
      ...           
   </ContentTemplate>
</asp:UpdatePanel>      
Run Code Online (Sandbox Code Playgroud)

但Visual Studio中的可视化页面设计器(2010(专业版(Windows(7(专业版(64位)))))给出了错误:

创建控件时出错 - UpdatePanelSetupToolbar

类型'System.Web.UI.UserControl'没有名为'ContentTemplate'的公共属性.

在此输入图像描述
编辑:添加漂亮的截图中的漂亮颜色以获得漂亮的效果

现在,严格的说,这是真的:UserControl具有所谓的公共属性ContentTemplate.

幸运的是我UpdatePanel是一个UpdatePanel,它确实有一个名为的公共属性'ContentTemplate'.

那么我如何说服Visual Studio我UpdatePanel是一个UpdatePanel

重要的补充说明

上面的代码实际上并没有失败:

<asp:UpdatePanel ID="UpdatePanelSetupToolbar" runat="server">
   <ContentTemplate>
      ...           
   </ContentTemplate>
</asp:UpdatePanel>  
Run Code Online (Sandbox Code Playgroud)

只有当我在...ContentTemplate中有内容时它才会失败:

    <asp:UpdatePanel ID="UpdatePanelSetupToolbar" runat="server">
        <ContentTemplate>
            <Vista:Toolbar ID="ToolbarSetup" runat="server">
                <ContentTemplate>
                    <asp:LinkButton ID="bbSetupDays" ToolTip="Specify how many allocations will be available on these selected days"
                    OnClick="bbSetupDays_Click"                                        
                    runat="server">Setup Selected Days</asp:LinkButton>         
                </ContentTemplate>
            </Vista:Toolbar>        
        </ContentTemplate>
    </asp:UpdatePanel>      
Run Code Online (Sandbox Code Playgroud)
  • 但Visual Studio并没有抱怨内心 ToolbarSetup
  • 它抱怨外部UpdatePanelSetupToolbar控制

那么交易是什么

类型'%s'没有名为'%s'的公共属性.

不重要的附加说明

ASP.net网站编译,构建和运行良好.这只是抱怨的Visual Studio(2010)设计师.

那有什么处理Type '%s' does not have a public property named '%s'.

系列

这个问题是正在进行的Stackoverflow系列中的一个,"模板化用户控件":

T. *_*sen 0

您应该根据设计解决这个问题。

将更新面板放在页面上,并使用户控件无需更新面板。

原因:您肯定知道,更新面板旨在自动生成异步回发的客户端脚本。用户控件是一个具有封装复杂性的自包含功能的构建块,它应该可以放置在任何地方,而不需要上下文,在这种情况下,至少您需要在页面上实例化控件的脚本管理器。