A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

K Khan
Aug 18, 2016
  3124
(4 votes)

page validations

There are instances when Editors should to be informed in form of warning and information rather to stop them and display error messages. For self note IValidate interface can be used for this purpose. e.g

public class StandardPageValidator : IValidate<StandardPage>
    {
        public IEnumerable<ValidationError> Validate(StandardPage instance)
        {
            if (instance.Name.Length < 10)
            {
                return new List<ValidationError>() {
                    new ValidationError() {
                        ErrorMessage ="Name is very short",
                        PropertyName = "Name",
                        Severity =ValidationErrorSeverity.Info,
                        ValidationType =ValidationErrorType.AttributeMatched
                    }
                };
            }

            return Enumerable.Empty< ValidationError>();
        }
    }

Image information.jpg

References:

http://world.episerver.com/documentation/Class-library/?documentId=episerverframework/7.5/e53f458f-f4a1-2904-620d-cad9167f3387

http://world.episerver.com/documentation/Class-library/?documentId=episerverframework/7.5/2a269a53-76ff-8c86-5984-5512fbe9f9b9

Aug 18, 2016

Comments

Aug 19, 2016 05:35 PM

Good post.  One additional thing I would mention here is that you can compare multiple fields as part of your validation logic, which gives the interface a bit more flexibility than other methods.

K Khan
K Khan Aug 19, 2016 07:07 PM

Good point Janaka, Thanks for sharing!

David Strøm
David Strøm Aug 24, 2016 11:15 AM

I have begun using this kind of validation for required properties instead of the builltin functionality which shows the editor a very anonymous form with the required fields. In my opinion the editor can easily loose track of context when they see this form.

Instead I use the IValidate to handle required fields and other validations. Exactly as you describe it. Then the editor has the context of the whole content type.

Good of you to put some spotlight on the IValidate functionality.

K Khan
K Khan Aug 24, 2016 11:24 AM

Thanks for sharing your approach, That makes sense!

Per Nergård (MVP)
Per Nergård (MVP) Aug 24, 2016 09:59 PM

We use this all the time and as David said it's perfect for validate several fields if you whish.  You can actually manipulate the data in the properties. Unfortunately the changes made in a validation isn'r reflected in the UI so the editor can see. I played around with it and you can read a blog post about it here.

K Khan
K Khan Aug 25, 2016 09:52 AM

Here we go! Thanks Per :), I remeber this now, You post is really a good reference point on this topic.

Please login to comment.
Latest blogs
Building simple Opal tools for product search and content creation

Optimizely Opal tools make it easy for AI agents to call your APIs – in this post we’ll build a small ASP.NET host that exposes two of them: one fo...

Pär Wissmark | Dec 13, 2025 |

CMS Audiences - check all usage

Sometimes you want to check if an Audience from your CMS (former Visitor Group) has been used by which page(and which version of that page) Then yo...

Tuan Anh Hoang | Dec 12, 2025

Data Imports in Optimizely: Part 2 - Query data efficiently

One of the more time consuming parts of an import is looking up data to update. Naively, it is possible to use the PageCriteriaQueryService to quer...

Matt FitzGerald-Chamberlain | Dec 11, 2025 |

Beginner's Guide for Optimizely Backend Developers

Developing with Optimizely (formerly Episerver) requires more than just technical know‑how. It’s about respecting the editor’s perspective, ensurin...

MilosR | Dec 10, 2025

Optimizely PaaS Administrator Certification : Free for Everyone

Optimizely has recently launched a free PaaS Administrator Certification. https://academy.optimizely.com/student/activity/2958208-paas-cms-administ...

Madhu | Dec 9, 2025 |

Fixing TinyMCE Initialization Failures in Optimizely CMS: A Hidden Pipeline Issue with .NET SDK Versions

Over the past few weeks, several Optimizely CMS projects began experiencing a puzzling failure: XHtmlString fields stopped initializing TinyMCE in...

Francisco Quintanilla | Dec 9, 2025 |