Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Daniel Draper 36 posts 57 karma points
    Mar 25, 2011 @ 03:50
    Daniel Draper
    0

    Razor in MasterPage for checking properties

    Hi Everyone,

    I am checking if a property has a value on a MasterPage using the following code, while this code works it's not very elegant. Does anyone have a more elegant or better solutions?

    heroImage is a media picker property. I noticed if no node was selected then heroImage was a string however if a value was available it was an int which is why I have checked the type, slightly annoying.

        <umbraco:Macro language="razor" runat="server">
            @using umbraco.cms.businesslogic.media;

            @if(@Model.heroImage.GetType() != typeof(string)) {
                 Media m = new Media(@Model.heroImage);
                 <img src='@m.getProperty("umbracoFile").Value' alt="@Model.Name" width='@m.getProperty("umbracoWidth").Value' height='@m.getProperty("umbracoHeight").Value' />
            }
      </umbraco:Macro>

     


    Cheers,

    Daniel

     

  • Sebastiaan Janssen 5061 posts 15544 karma points MVP admin hq
    Mar 25, 2011 @ 08:32
    Sebastiaan Janssen
    0

    You can just cast the property to string:

    @if(Model.heroImage.ToString() != "") {
     //do something
    }

    This will return false if the property does not exist or has no value.

  • Sebastiaan Janssen 5061 posts 15544 karma points MVP admin hq
    Mar 25, 2011 @ 08:37
    Sebastiaan Janssen
    0

    Ps. Instead of using the media API, you could just use the built in DynamicMedia functionality, and you can loose the using statement:

    @if(Model.heroImage.ToString() != "") {
       var m = Model.MediaById(Model.heroImage);
       <img src="@m.UmbracoFile" alt="@Model.Name" height="@m.UmbracoHeight" width="@m.UmbracoWidth" />
    }
  • Daniel Draper 36 posts 57 karma points
    Mar 28, 2011 @ 00:27
    Daniel Draper
    0

    Thanks, can't believe I didn't think about .ToString *headdesk*

    Thanks for the DynamicMedia option, been almost 12 months since I have worked on Umbraco however finally convinced the people that matter Umbraco is the way.

  • Sebastiaan Janssen 5061 posts 15544 karma points MVP admin hq
    Mar 28, 2011 @ 08:03
    Sebastiaan Janssen
    0

    Hehe, no problem. We've all been there.

    The Razor implementation is really new so you can't be blamed for not knowing about it. Glad I could help!

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies