我一直在尝试按照msdn上提供的指南将我的asp.net网站转换为网络应用程序。但是,我遇到了一些实现模板的usercontrols的问题,收到以下错误:
'System.Web.UI.UserControl'没有名为'ContentTemplate'的公共属性
代码隐藏明确定义了这样的模板属性,它在WS中运行良好。
[TemplateContainer(typeof(ContentContainer))]
[PersistenceMode(PersistenceMode.InnerProperty)]
[TemplateInstance(TemplateInstance.Single)]
public ITemplate ContentTemplate { get; set; }
更新:我不知道如何或为什么但是这些控件中的一些已经设法转换为WAP用户控件(添加了设计器文件),然后问题是我在这些模板中定义的asp控件不再可以找到代码背后。
错误:
当前上下文中不存在“DropDownRoles”这个名称
标记:
<%@ Register src="~/Controls/Containers/ContainerFrame.ascx" tagname="ContainerFrame" tagprefix="uc" %>
<uc:ContainerFrame ID="ContainerFrame1" Title="Layout" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownRoles" runat="server" />
</ContentTemplate>
</uc:ContainerFrame>
有什么想法吗?
答案 0 :(得分:1)
如果无法找到它,我会猜到命名空间问题。
我通常在页面声明方面遇到这样的问题,但对于用户控件来说可能是相同的
答案 1 :(得分:1)
我同意这可能是命名空间问题。网站项目旨在成为孩子的东西,命名空间对于孩子来说太复杂了。使用Web应用程序项目意味着您已经移动到成年人的表中。
我建议您开始完全限定自定义类型名称,直到您完全正确构建,并使用正确名称空间中的类。