Anders Hattestad
Oct 16, 2008
visibility 13981
star star star star star
(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)

error Please login to comment.
Latest blogs
Build Your First Opal Tool in C#

Optimizely ships a C# SDK for building custom

Adnan Zameer | Nov 2, 2026 |

Introducing Publishing Timeline for Optimizely CMS 13

When working with scheduled content in Optimizely CMS, having a clear overview of what's going live and when can be really helpful, especially when...

Mardy | Nov 2, 2026

What else changed in Optimizely CMS 13.5.1

Optimizely CMS 13.5.1 lists a single Graph fix in its release notes. I decompiled the packages and found more: a new setting that lets editors find...

Tomas Hensrud Gulla | Nov 1, 2026 |

New logo and login page in Optimizely CMS 13.5

CMS 13.5.0 quietly ships a new logo and a redesigned login page.

Tomas Hensrud Gulla | Oct 30, 2026 |