ASP.NET母版页不更新子页面

时间:2012-08-16 00:39:47

标签: asp.net master-pages

我创建了一个基于MasterPage的网站,在创建了几个页面后,我添加了一个新的<asp:ContentPlaceHolder>,但似乎现有页面不会更新以包含它,但新页面会这样做。

有没有办法强制更新,还是有正确的方法来执行此操作?我刚刚保存了母版页并希望最好。

2 个答案:

答案 0 :(得分:2)

您需要手动将新<asp:ContentPlaceHolder>添加到旧的aspx页面。

在您的母版页中:

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
<asp:ContentPlaceHolder ID="new_one" runat="server"></asp:ContentPlaceHolder>

在旧的aspx页面中,添加:

<asp:Content ID="Content3" ContentPlaceHolderID="new_one" runat="server">
</asp:Content>

答案 1 :(得分:0)

如果您在母版页中创建新的内容占位符,则您的内容页面不需要具有相应的<asp:Content>。如果您想要替换母版页中的默认内容,他们只需要一个。

如果您要使用自己的内容更新每个网页,那么添加<asp:Content>代码可能会带来相对较小的不便。

不幸的是,Visual Studio无法搜索所有内容页面并使用新的<asp:Content>控件更新它们。

但是,您可以通过使用现有<asp:Content>控件的ID来快速完成此操作,并执行ctrl + shift + F并替换为您的新的<asp:Content>加上您搜索的内容。

例如,如果您的内容页面都已有

<asp:Content ID="Content3" ContentPlaceHolderID="old_one" ... />

然后您可以搜索并替换为

<asp:Content ID="Content4" ContentPlaceHolderID="new_one" runat="server" /><asp:Content ID="Content3" ContentPlaceHolderID="old_one" ... />

不完全漂亮,但可以节省一些时间。