Copied to clipboard

Flag this post as spam?

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


  • Claushingebjerg 886 posts 2415 karma points
    Jun 27, 2014 @ 09:15
    Claushingebjerg
    0

    get url from nodeid

    Im slowly going crazy... Simple as it is, cant get it to work :|

    myLink returns "1061" but this doesn't work...

    @{ 
        var myLink = @fieldset.GetValue("slideLink");
    }
    <a href="@umbraco.library.NiceUrl(myLink)">Click</a>


    This works (but is not very usable :) :

    <a href="@umbraco.library.NiceUrl(1061)">Click</a>
  • Dan Lister 416 posts 1973 karma points c-trib
    Jun 27, 2014 @ 09:25
    Dan Lister
    0

    What type is fieldset? Have you tried something like the following, assuming your fieldset is of type IPublishedContent? 

    @{
        var id = fieldset.GetPropertyValue<int>("slideLink");
        var url = Umbraco.NiceUrl(id);
    }

     

  • Jeavon Leopold 3008 posts 13221 karma points MVP 7x admin c-trib
    Jun 27, 2014 @ 09:28
    Jeavon Leopold
    0

    Archetype?

       @{ 
            var myLink = fieldset.GetValue<int>("slideLink");
        }
        <a href="@Umbraco.NiceUrl(myLink)">Click</a>
    
  • Claushingebjerg 886 posts 2415 karma points
    Jun 27, 2014 @ 09:29
    Claushingebjerg
    0

    Yup tried that, you cant <int>, it returns an errror.

    .fieldset is an archetype

  • Stefan Kip 1606 posts 4098 karma points c-trib
    Jun 27, 2014 @ 09:30
    Stefan Kip
    100

    How about:

    @umbraco.library.NiceUrl(int.Parse(myLink))
    
  • Jeavon Leopold 3008 posts 13221 karma points MVP 7x admin c-trib
    Jun 27, 2014 @ 09:32
    Jeavon Leopold
    0

    You had a @ in the variable before, did you try without that?

  • Claushingebjerg 886 posts 2415 karma points
    Jun 27, 2014 @ 09:35
    Claushingebjerg
    0

    Thanks kip, that did it.

    Yeah Jeavon tried it noth with and without

    var myLink = fieldset.GetValue<int>("slideLink");

    and

    var myLink = @fieldset.GetValue<int>("slideLink");

     

  • Jeavon Leopold 3008 posts 13221 karma points MVP 7x admin c-trib
    Jun 27, 2014 @ 09:41
    Jeavon Leopold
    1

    Ok, I will investigate further. In the meantime to avoid obsolete umbraco.library this should work:

       <a href="@Umbraco.NiceUrl(int.Parse(myLink))">Click</a>
    
  • Claushingebjerg 886 posts 2415 karma points
    Jun 27, 2014 @ 09:47
    Claushingebjerg
    0

    Yup, thanks

  • Jeavon Leopold 3008 posts 13221 karma points MVP 7x admin c-trib
    Jun 27, 2014 @ 11:21
    Jeavon Leopold
    0

    I've just tried this and it worked fine:

    @foreach (var fieldset in Model.Content.GetPropertyValue<ArchetypeModel>("myarchetype"))
    {
        if (fieldset.HasValue("slideLink"))
        {
            var myLink = fieldset.GetValue<int>("slideLink");
            <a href="@Umbraco.NiceUrl(myLink)">Click</a>
        }
    }
    

    So, I'm going to guess that you had a slideLink without a value. Adding the fieldset.HasValue deals with this to prevent the exception.

  • Claushingebjerg 886 posts 2415 karma points
    Jun 27, 2014 @ 11:33
    Claushingebjerg
    0

    Well... I had to change the for each, because i wanted to check if a node was first... So i have:

    @{
         var slider = Model.Content.GetPropertyValue<ArchetypeModel>("slider");
         foreach (var fieldset in slider)
        {
            if (fieldset.Equals(slider.First()))
            {
            <div class="item active">
                <div class="carousel-caption">
    @{ var myLink = @fieldset.GetValue("slideLink"); } <a href="@Umbraco.NiceUrl(int.Parse(myLink))"><p>@Html.Raw(myStrippedText)</p></a> </div> </div> }
    }

    and adding the <int> here causes an error...

     

     

  • Jeavon Leopold 3008 posts 13221 karma points MVP 7x admin c-trib
    Jun 27, 2014 @ 11:37
    Jeavon Leopold
    0

    How about like this:

    @{
        var slider = Model.Content.GetPropertyValue<ArchetypeModel>("slider");
        foreach (var fieldset in slider)
        {
            if (fieldset.Equals(slider.First()))
            {
                <div class="item active">
                    <div class="carousel-caption">                 
                        @if (fieldset.HasValue("slideLink"))
                        {
                            var myLink = fieldset.GetValue<int>("slideLink");
                            <a href="@Umbraco.NiceUrl(myLink)"><p>something</p></a>
                        }                   
                    </div>
                </div>
            }
        }
    }       
    
  • 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