Aug 30, 2011
  3461
(0 votes)

Inline or Code Behind - EPI Server Property

I have a requirement where a product price is selected based of discount flag setting done by web admin in edit mode. I have three property's “Normal Price”, “Promotional Price” and a flag “For sale”. if “for sale” is on then the promotional price should be shown other wise normal price should be shown.  I found two ways to work on this issue inline or code behind.

 

Code Behind :-

For code behind I created a property and made a check in get assessor of the property -

 

 public int Price
        {
            get
            {
                PropertyData property = CurrentPage.Property["StockStatus"];

                if (property.ToString().ToLower() == "forsale")
                {
                    PropertyData property22 = CurrentPage.Property["PromotionalPrice"];
                    if (property22 != null && !property22.IsNull)
                    {
                        _price = Convert.ToInt32(property22.ToString());
                    }
                }
                else 
                {
                    PropertyData property22 = CurrentPage.Property["ProductPrice"];
                    if (property22 != null && !property22.IsNull)
                    {
                        _price = Convert.ToInt32(property22.ToString());
                    }
                }

                return _price;
            }

        }

Only html at UI is-
<% = Price %>

 

 

Inline Code:-

Below is the straight forward inline code -

 

<% if (CurrentPage.Property["StockStatus"].ToString().ToLower() == "forsale")
   { %>
       <%=  CurrentPage.Property["PromotionalPrice"].ToString() %>
<% }
   else
   { %>
         <%= CurrentPage.Property["ProductPrice"].ToString() %>
<% } %>
Aug 30, 2011

Comments

Magnus Rahl
Magnus Rahl Aug 30, 2011 02:41 PM

To "ToString" the properties directly is dangerous - they could be null. Get a string property like this (DefaultValue could be anything you like):

CurrentPage["StockStatus"] as string ?? DefaultValue

Eric
Eric Aug 31, 2011 12:39 PM

or use Convert.String could be used i think that will returns string.empty if i remember correctly if null..

Sep 5, 2011 09:44 AM

Yes using "ToString" directly is dangerous. Further on best practice of property usage go to online cms sdk.

- http://sdk.episerver.com/library/cms6.1/index.aspx#
- Developers Guide
- Core Features
- Properties
- Working With Page Properties in EPiServer CMS

Please login to comment.
Latest blogs
A Synonyms Manager for Optimizely Graph

If you’re using Optimizely Graph for search, synonyms are one of the simplest ways to improve relevance without touching content. But they’re also...

Pär Wissmark | Mar 17, 2026 |

Building a Better Link Validation Report in Optimizely CMS 12

Broken links frustrate visitors and damage SEO. I have made a custom broken links report, that makes it easier to work broken links than the built-...

Henning Sjørbotten | Mar 17, 2026 |

Jhoose Security Module V3.0.0 – Site-Level Security Configuration for Optimizely

Discover what's new in Jhoose Security Module 3.0, including site-level security configuration for multi-site Optimizely solutions with global...

Andrew Markham | Mar 15, 2026 |

Running 64 Sites on Headless Optimizely CMS with GraphQL

64 websites. Live. Running on headless Optimizely with GraphQL. We just wrapped a major rollout for our Rockwool Digital Experience Platform  and t...

Piotr | Mar 14, 2026