Copied to clipboard

Flag this post as spam?

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


  • Sebastian Dammark 583 posts 1407 karma points
    Dec 04, 2011 @ 23:08
    Sebastian Dammark
    0

    What is wrong with this if/else ?

    I'm trying my first Razor stuff and I'm producing questions like rabbits are producing offspring :)

    What's wrong with this:

    @if (node.title.Length != 0) {
        node.title;
    } else { 
        node.nodeName;
    }

    I get this error, which totally blows me off: error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement

    It sounds like something from Redmond :) 

  • Sebastiaan Janssen 5061 posts 15544 karma points MVP admin hq
    Dec 05, 2011 @ 10:28
    Sebastiaan Janssen
    0

    The title has probably never been filled in, so it might be null instead of having no lengths, try this:

    @if (node.title != null && node.title.Length != 0) {
            node.title;
    } else { 
            node.nodeName;
    }

     

  • Sebastian Dammark 583 posts 1407 karma points
    Dec 05, 2011 @ 11:23
    Sebastian Dammark
    0

    Hmmm ... I've tried that but without any luck.
    I also changed node.nodeName to node.Name

    Still getting the same error 

  • Chriztian Steinmeier 2800 posts 8791 karma points MVP 8x admin c-trib
    Dec 05, 2011 @ 11:46
    Chriztian Steinmeier
    0

    Hi Sebastia(a)n :-)

    I believe I read somewhere that you need to use aelement around standalone expressions like those (where you're not wrapping them in a or similar)

    So:

    @if (node.title.Length != 0) {
            <text>node.title</text>
    } else { 
            <text>node.nodeName</text>
    }

    /Chriztian

  • Sebastiaan Janssen 5061 posts 15544 karma points MVP admin hq
    Dec 05, 2011 @ 11:53
    Sebastiaan Janssen
    0

    Ooh d'oh! of course, I didn't think of that. You could try that or just @node.Title and @node.Name (by the way, no need to type nodeName, just Name is fine).

    FYI: it depends if there's html before and after the @if. The context switching is a bit hard to figure out at first. :-)

  • Artem 4 posts 24 karma points
    Dec 08, 2011 @ 12:31
    Artem
    0

    If "node" is of type DynamicNode, e.g.:

    var node = Model.NodeById(1234);

    Than next script should work

    @if (!node.IsNull("title") && node.HasValue("title")) {
    @node.Title;
    } else {
    @node.Name;
    }
  • 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