volume_up

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

volume_up

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

Override property with IgnoreAttribute

In EPiServer 7.0 I can do:

public abstract class SitePageData : PageData
{
    [Ignore]
    public virtual string Heading
    {
        get { return this.Name; }
        set { throw new NotImplementedException(); }
    }
}

public class InformationPage : SitePageData
{
    [CultureSpecific]
    [Display(GroupName = SystemTabNames.Content, Order = 10)]
    public override string Heading
    {
        get
        {
            string heading = this.GetPropertyValue(content => content.Heading);

            return !string.IsNullOrEmpty(heading) ? heading : this.Name;
        }
        set { this.SetPropertyValue(content => content.Heading, value);
       }
    }
}
But I can not do this in 7.5. It looks like the IgnoreAttribute cant be overridden. If I look at the InformationPage in Admin-mode the property "Heading" is missing. Should I be able to do like this? Or how should I solve it?

Regards Hans
#86612
May 26, 2014 16:49
Vote:

Haven't used myself. What about Scaffold(false) ?

#86658
May 27, 2014 21:03

Try using 

public new virtual string Heading {...}
#86666
May 28, 2014 9:55
Vote:

I would suggest that you take another approach on your class inheritance..

And if you need to have fallback data on values it's mostly a better approach to let the rendering do this instead of adding this to the model/pagetype.

#86687
May 28, 2014 13:51
Vote:

Valdis Iljuconoks

ScaffoldColumn(false) doesn't stop EPiServer serialize the property I think

#86722
May 29, 2014 1:48

Hi, and thanks all

Sorry for not answering earlier, been busy busy busy doing nothing at all... ;-)

First I solved it like this (as Per also have suggested)

public abstract class SitePageData : PageData
{
    public virtual string Heading
    {
        get
        {
            string heading = this.GetPropertyValue(content => content.Heading);
 
            return !string.IsNullOrEmpty(heading) ? heading : this.Name;
        }
    }
}
 
public class InformationPage : SitePageData
{
    [CultureSpecific]
    [Display(GroupName = SystemTabNames.Content, Order = 10)]
    public new virtual string Heading
    {
	get { return base.NavigationItemName; }
	set { this.SetPropertyValue(content => content.NavigationItemName, value); }
    }
}

But I want to avoid overriding with "new". So I will try "ScaffoldColumn", didnt know about that attribute. I will also consideer what Alf says, I agree you have a point there.

Regards Hans

#86969
Jun 05, 2014 12:17
error This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.