Published on:Jul 24, 2020
Views: 4239
Number of votes: 10
Average rating:

Episerver Labs - LinkProperty

We would like to introduce a new Episerver Labs add-on. LinkProperty is a simple extension that allows editors to work with a single LinkItem instance.

The property is just a new UI Editor that still use PropertyLinkCollection as a backing type. It means that in the database it is a LinkItemCollection property with just one item.

The new editor looks similar to the ContentReference editor:


When editing a link, the same dialog as for LinkItemCollection property is displayed:


Using LinkProperty addon

To use LinkItemCollection as model type, you just need to annotate the LinkItemCollection property with a LinkItemProperty attribute:

[ContentType(GUID = "19671657-B684-4D95-A61F-8DD4FE60D559"]
public class StartPage : PageData
    public virtual LinkItemCollection IntranetLink { get; set; }

To use LinkItem as a model type, additionally you have to add BackingTypeAttribute attribute and override default getter and setter. These are extension methods, so it is just two lines of code:

[ContentType(GUID = "19671657-B684-4D95-A61F-8DD4FE60D559"]
public class StartPage : PageData
    public virtual LinkItem Link
        get => this.GetLinkItemPropertyValue(nameof(Link));
        set => this.SetLinkItemPropertyValue(nameof(Link), value);

LinkItem property model

For LinkItem as a model, you can additionally use a custom property renderer. It requires adding EPiServer.Labs.LinkItemProperty.LinkItemRendering.Tag tag when rendering:

@using AlloyTemplates
@model PageViewModel<TestPage>

@Html.PropertyFor(x => x.CurrentPage.Link, new { Tag = EPiServer.Labs.LinkItemProperty.LinkItemRendering.Tag })


To add a new link, you can use the edit button, drag-and-drop content from the page tree or from other reference properties on the page.

The only limitation is that you have to use Episerver CMS 11.26.0 or higher, because it contains a fix necessary to make LinkProperty work.

The add-on is available as a NuGet package.

Jul 24, 2020

Drew Null
( By Drew Null, 7/27/2020 10:11:50 PM)


K Khan
( By K Khan, 7/28/2020 5:52:46 PM)

:) very much desired behaviour

Jonas  Carlbaum
( By Jonas Carlbaum, 8/3/2020 11:56:19 AM)

Nice... 👍👌

Daniel Ovaska
( By Daniel Ovaska, 8/10/2020 9:36:34 AM)

worth waiting for :)

K Khan
( By K Khan, 8/10/2020 11:14:07 AM)

couldn't find it on git, Is it on Git?

Grzegorz Wiecheć
( By Grzegorz Wiecheć, 8/28/2020 6:13:53 AM)

It's now on github:

Please report bugs releated with LinkItemProperty as issues on Github.

K Khan
( By K Khan, 8/28/2020 9:37:02 AM)


Please login to comment.