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

Per Nergård (MVP)
Mar 26, 2013
  10518
(4 votes)

Plugin for deleting missing properties

When developing your site and refactoring property names on page- and block types you can end up with some “missing” properties when you view them in admin mode.

Per Bjurstrom has a nice blog post about how typed models are synchronized .

If you change a property name on your page types base class you have to go to each page type in admin mode, select that property and decide if you want to delete it or save it disconnected from code.

Doing repetitive tasks is boring and things tend to get missed Ler

I think that the admin mode lacks an easy way to see all missing  properties and have the possibility to delete them.

So I decided to create a small plugin for the task.

The result looks like this:

 

Missingproperties

 

Just tick the delete checkbox for the properties you want to delete and hit the delete button.

You can download the code over at the code section.

Mar 26, 2013

Comments

Jeff Wallace
Jeff Wallace Mar 26, 2013 10:11 PM

Nice work. I've been doing a bit of property deletion the past week and this will be a nice way to streamline both the finding and the deleting of them in the future.

Apr 20, 2013 02:33 AM

Hey Per,

Noticed a small issue in your code, you are continuing to bind the properties grid view when the page posts back, I am using this awesome admin plugin, but modified the code as follows:

Moved:
this._contentTypeModelRepository = ServiceLocator.Current.GetInstance();
into the Setup() routine

Added:
if (!Page.IsPostBack)
{
Setup();
}

in the OnLoad

Per Nergård (MVP)
Per Nergård (MVP) Apr 22, 2013 07:46 AM

@Mike: Oops! Thanks for the update I will update the code.

Ayo
Ayo Feb 21, 2018 11:36 AM

This is exactly what I'm looking for but this post is from 2013, I am using episerver 10 will this plugin work with more recent versions of EpiServer? 

Is there not a built in way to do this? This is my first Episerver project, I come from an Umbraco Background, it seems very silly that this is not an option. 

If you have 100s of block types, mulitple enviroments, lots of refactoring to do means its error prone.... any ideas?

Per Nergård (MVP)
Per Nergård (MVP) Feb 21, 2018 01:31 PM

No built in way to do this. I think it should work pretty out of the box. There might be some changes to which repository is used to get and delete properties. But I know we have it in projects based on Episerver 10.

Peter Bennington
Peter Bennington Oct 4, 2019 03:16 PM

Hi Per. I was just wondering if the code for the original admin menu is still available? The one where you can view the properties that are missing and choose to delete them, rather than automatically deleting them on startup as you do in your other post https://world.episerver.com/blogs/Per-Nergard/Dates/2016/4/missing-properties-initializationmodule/

Scott Reed
Scott Reed Sep 17, 2020 11:48 AM

Hey Per, was looking for this plugin but the link doesn't work. Is it still about?

Per Nergård (MVP)
Per Nergård (MVP) Nov 17, 2020 10:55 PM

Scott: I havent got a message about your comment.  https://github.com/PNergard/Nergard.EPi.Plugins.MissingProperties

If thats to old just send me a message in the EMVP forums and I will mail you the code.

Please login to comment.
Latest blogs
ScheduledJob for getting overview of site content usage

In one of my current project which we are going to upgrade from Optimizely 11 I needed to get an overview of the content and which content types we...

Per Nergård (MVP) | Jan 27, 2026

A day in the life of an Optimizely OMVP: Migrating an Optimizely CMS Extension from CMS 12 to CMS 13: A Developer's Guide

With Optimizely CMS 13 now available in preview, extension developers need to understand what changes are required to make their packages compatibl...

Graham Carr | Jan 26, 2026

An “empty” Optimizely CMS 13 (preview) site on .NET 10

Optimizely CMS 13 is currently available as a preview. If you want a clean sandbox on .NET 10, the fastest path today is to scaffold a CMS 12 “empt...

Pär Wissmark | Jan 26, 2026 |

Building AI-Powered Tools with Optimizely Opal - A Step-by-Step Guide

Learn how to build and integrate custom tools with Optimizely Opal using the Opal Tools SDK. This tutorial walks through creating tools, handling...

Michał Mitas | Jan 26, 2026 |