Wednesday, August 15, 2012

ASP.NET validation controls prevent publishing pages from saving/publish in SharePoint

The situation

You have an ASP.NET controls that contains validation controls in the masterpage or page layout for a publishing site (an ASP.NET login control for example). When you try to edit and check in a publishing page you receive the following error.

This page contains content or formatting that is not valid. You can find more information in the affected sections.

The problem

Even if you fill in all the required fields on the publishing page, the validation controls on the other ASP.NET controls prevent the page from saving / Publishing.

The solution

One quick way of rectifying this problem is to place an EditModePanel with PageDisplayMode=”Display” around the controls to prevent them from displaying when the page is in edit mode. For example:

<PublishingWebControls:EditModePanel runat=server id="EditModePanel1" PageDisplayMode="Display">
<asp:Login runat="server" id="Login1"></asp:Login>
</PublishingWebControls:EditModePanel>


 This will only render the control when the page is in ‘Display’ mode so validation will not occur when users are editing the publishing page.