Office 365 – SharePoint Online – Only Content controls are allowed directly in a content page that contains Content controls

HiΒ All
NewΒ problemΒ inΒ SharePointΒ OnlineΒ world in classic mode πΒ andΒ solutionΒ :).
InΒ thisΒ articleΒ IΒ willΒ explainΒ howΒ theΒ exceptionΒ βOnlyΒ ContentΒ controlsΒ areΒ allowedΒ directlyΒ inΒ aΒ contentΒ pageΒ thatΒ containsΒ ContentΒ controls.βΒ occursΒ andΒ solutionΒ toΒ it.
Background : For our SharePoint online application (in classic mode) we were working on new custom page layout. Our page layout is very simple and as such no major changes. So we just downloaded OOB βArticle Pageβ layout and opened it in Visual Studio, modified it and manually uploaded in βMaster Pageβ gallery. Set the βContent Typeβ as βPage Layoutβ content type and βAssociated Content Typeβ as our custom content type. We made page layout available from the βPage Layout and Site Template Settingsβ for creating the pages.
So next step is to create the content page from our custom page layout and verify it. Content page successfully get created but when we open the page it throws an following exception as

FigureΒ 1Β : Office 365 – SharePoint – ExceptionΒ onΒ pageΒ whichΒ isΒ createdΒ fromΒ newΒ customΒ pageΒ layout
Sorry, something went wrong
Only Content controls are allowed directly in a content page that contains Content controls.
TECHNICAL DETAILS
Troubleshoot issues with Microsoft SharePoint Foundation.
Correlation ID: 034a449d-d02b-2000-1648-733d4593b008
Date and Time: 11/22/2015 7:46:39 PM
Only the above exception and not much details. Googled bit but no luck. Also went through the page layout in visual studio again but seems to be no issues.
So finally I downloaded the our page layout from βMaster Pageβ gallery and surprisingly found that there were below extra commented code added at the bottom of the page layout after the closing section of βPlaceHolderMainβ control place holder:
<%--<div class="captioned-image">
<div class="image">
<PublishingWebControls:RichImageField FieldName="PublishingPageImage" runat="server"/>
</div>
<div class="caption">
<PublishingWebControls:RichHtmlField FieldName="PublishingImageCaption" AllowTextMarkup="false" AllowTables="false" AllowLists="false" AllowHeadings="false" AllowStyles="false" AllowFontColorsMenu="false" AllowParagraphFormatting="false" AllowFonts="false" PreviewValueSize="Small" AllowInsert="false" AllowEmbedding="false" AllowDragDrop="false" runat="server"/>
</div>
</div>--%>
Root Cause / Solution : This type of issue there also previously we have in on premises but with different exception message like “No parameter less constructor defined for this object”.
After again going through the page layout, it seems to be problem with casing of tag. There were mismatch between casing of opening and closing of tag.
Opening tag is – : C in Content is capital case and
Closing tag is – : c in Content is small case
It should always be capital βCβ in Content of opening as well as in closing tag like
<asp:Content>Β </asp:Content>
We corrected our page layout and problem went away π
Thanks for readingΒ π
Keep reading, share your thoughts, experiences. Feel free to contact us to discuss more. If you have any suggestion / feedback / doubt, you are most welcome.
Stay tuned on Knowledge-Junction, will come up with more such articles
You must be logged in to post a comment.