I recently built a SharePoint feature to provision custom master pages and page layouts for a client. Overall the solution worked pretty well until one day, while making changes to one of the page layouts, I saw the following error: Only Content controls are allowed directly in a content page that contains Content controls.
Since other blog entries, referenced at the end of this article, can explain the background I’ll get right to the cause and the solution. The cause is improper case for the <asp:Content> control tags in my page layout. A few contorls used a lower case “c” instead of an uppercase “C” in the word content. The page layout that had trouble had tags that looked like: <asp:content> instead of <asp:Content>. The specific offending tag is the one associated with the page title (<asp:Content ContentPlaceholderID=”PlaceHolderPageTitle” runat=”server”>). The solution was as simple as correcting the case of the tag name and all worked well.