Anders Hattestad
Oct 16, 2008
  12755
(1 votes)

Dynamic content and State attribute

I had a problem with the State attribute. This is the attribute that is saved inside the span [SPAN class=dynamiccontent contentEditable=false style="....." disabled hash="oqAE..zt1Y=" state="xxx"][/SPAN]

I tried to save some xml inside it, and the dynamic content render just wouldnt save. it seems like the attribute can contains html/xml tags.

The trick was to convert my string into Base64.

public string Value;
#region Value64
public string Value64
{
    get
    {
        if (Value == null)
            return null;
        return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes((string)Value));

    }
    set
    {
        if (value != null)
        {
            
            byte[] toDecodeByte = Convert.FromBase64String(value);

            System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
            System.Text.Decoder utf8Decode = encoder.GetDecoder();

            int charCount = utf8Decode.GetCharCount(toDecodeByte, 0, toDecodeByte.Length);

            char[] decodedChar = new char[charCount];
            utf8Decode.GetChars(toDecodeByte, 0, toDecodeByte.Length, decodedChar, 0);
            string result = new String(decodedChar);
            Value = result;

        }
    }
}
#endregion
#region State (64)
public string State
{
    get
    {
            return Value64;
    }
    set
    {
        Value64 = value;
        
    }
}
#endregion
Oct 16, 2008

Comments

Sep 21, 2010 10:32 AM

Good post Anders. Because the state string is stored as part of the XHTML Property it cannot contain XML in raw form. In these cases we recommend Binary Serialization as you have used. Paul EPiServer Dev Team
/ Paul Smith

Sep 21, 2010 10:32 AM

Thx, but couldn't the function that retrives the State string convert it for us?
/ Anders Hattestad (hattestad@gazette.no)

Please login to comment.
Latest blogs
Plug-in manager is back in CMS 12

Plug-in manager is back in the UI, what is it and how can i use it?

Luc Gosso (MVP) | Oct 6, 2022 | Syndicated blog

Display Child Pages in Content Delivery API Response

The below example will implement an instance of IContentConverterProvider to customise the serialisation of PageData and output child pages in the...

Minesh Shah (Netcel) | Oct 4, 2022

Bring the Report Center back in Optimizely CMS 12

The Report Center has been a part of Optimizely CMS since its first debut in version 5R2 in 2008, but in CMS 12, it's removed! Don't despair! Make...

Tomas Hensrud Gulla | Oct 4, 2022 | Syndicated blog

Customizing Property Lists in Optimizely CMS

Generic property lists is a cool editorial feature that has gained a lot of popularity - in spite of still being unsupported (officially). But if y...

Allan Thraen | Oct 2, 2022 | Syndicated blog