【发布时间】:2012-07-24 07:00:57
【问题描述】:
这个问题之前已经被问过几十次了;但一直没有解决。
我有一个UpdatePanel
<asp:UpdatePanel ID="UpdatePanelSetupToolbar" runat="server">
<ContentTemplate>
...
</ContentTemplate>
</asp:UpdatePanel>
但是 Visual Studio (2010 (Professional (Windows (7 (Professional (64-bit))))) 中的可视化页面设计器给出了错误:
创建控件时出错 - 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>
只有当我在 ... 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>
- 但 Visual Studio 并没有抱怨内部
ToolbarSetup - 它在抱怨外部
UpdatePanelSetupToolbar控件
那是怎么回事
类型“%s”没有名为“%s”的公共属性。
?
不重要的补充说明
ASP.net 网站编译、构建和运行很好。抱怨的只是 Visual Studio (2010) 设计师。
那么Type '%s' does not have a public property named '%s'. 是怎么回事?
系列
这个问题是 Stackoverflow 系列中的一个,“模板化用户控件”:
【问题讨论】:
-
您是否曾经查看过 ASP.NET 生成的临时/中间文件,以查看所构建的代码是否存在任何可能导致设计器问题的异常?
-
我无法在 Visual Studio 2012 中重现。大多数支持数据绑定的控件都已更新为允许强类型化。我相信这种增强的副作用使这个问题消失了。 asp.net/aspnet/overview/aspnet-and-visual-studio-2012/whats-new
-
@KellyS.French 我会留给你找出哪种解决方案有效。这个bug太严重了,我不能再看它了。不过,我会杀了一个修复。
标签: asp.net visual-studio-2010 visual-studio