我有一个网站给我以下错误:
仅在引用a的内容页面中允许内容控件 母版页。
以下是它尝试加载的文件的内容:
<%@ Page Language="c#" MasterPageFile="~/shared/templates/Default.master" %>
<asp:Content ID="PageContent" runat="server" ContentPlaceHolderID="PageContentPlaceHolder" />
Default.master确实存在于请求的位置,并且包含:
<asp:ContentPlaceHolder runat="Server" ID="PageContentPlaceHolder" />
为什么子页面无法识别/加载母版页?
谢谢!
UPDATE - 这是堆栈跟踪和.NET版本信息:
[HttpException (0x80004005): Content controls are allowed only in content page that references a master page.]
System.Web.UI.MasterPage.CreateMaster(TemplateControl owner, HttpContext context, VirtualPath masterPageFile, IDictionary contentTemplateCollection) +11119902
System.Web.UI.Page.get_Master() +69
System.Web.UI.Page.ApplyMasterPage() +18
System.Web.UI.Page.PerformPreInit() +58
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1256
版本信息:Microsoft .NET Framework版本:2.0.50727.5485; ASP.NET版本:2.0.50727.5483
答案 0 :(得分:0)
母版页应与页面位于同一IIS应用程序中。
答案 1 :(得分:0)
用于您拥有的内容页面
<asp:Content ID="PageContent" runat="server" ContentPlaceHolderID="PageContentPlaceHolder" />
你编辑过这个还是确切的?也许它需要一个完全封闭的标签?
<asp:Content ID="PageContent" runat="server" ContentPlaceHolderID="PageContentPlaceHolder">
content
</asp:Content>
答案 2 :(得分:0)
感谢大家的帮助,但最终证明没有人能够用我提供的信息解决这个问题。我没有写这段代码,但我坚持维护它,这是我第一次见到这个网站。
事实证明,在web.config中,有一个类被定义为所有页面的基本类型。这个类根据数据库查询的结果覆盖了MasterPageFile属性,在这种情况下,数据库查询返回一个空结果。
所以,我会在这里发布这个答案,以防任何人遇到似乎不可能的事情 - 特别是在维护遗留代码时。检查web.config。