2009-08-14 34 views
0

我一直试图按照msdn上提供的指南将我的asp.net网站转换为一个web应用程序。然而,香港专业教育学院碰到我的一些用户控件的实现模板,得到以下错误的问题:将WS转换为WAP

“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

添加名称空间有部分帮助。 错误如“名称'TextBoxUserName'在当前上下文中不存在”从页面的代码隐藏中随机出现。 在空的WAP解决方案中写入类似的代码没有给出任何错误,感觉非常随意。 当用谷歌搜索这个问题时,顶级解决方案是选择cs文件作为一个“嵌入式资源”,允许它进行编译,但导致副作用。不应该代码隐藏的cs文件被编译? – CodeSpeaker 2009-08-15 13:16:44

回答

1

我猜如果找不到它,就会遇到命名空间问题。

我也通常有这样的与该页面声明的问题,但它可能是用户控件一样

1

我同意,这可能是一个命名空间的问题。网站项目旨在成为孩子们的东西,命名空间对孩子来说太复杂了。使用Web应用程序项目意味着你已经转移到成年人的桌子上。

我建议您开始完全限定您的自定义类型名称,直到获得正确构建的所有内容为止,并且类中的正确名称空间。

+0

+1,我不是一个孩子,所以我想这只是让我幼稚,然后 – CodeSpeaker 2009-08-15 10:06:10