Copied to clipboard

Flag this post as spam?

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


  • J 447 posts 864 karma points
    Feb 27, 2023 @ 13:59
    J
    0

    Convert Udi to URL?

    Hi

    I select a node in Umbraco. This saves it as

    umb://document/123456
    

    I would like to convert this to the equivalent URL. How could i do that?

    I tried

    var url = Udi.Parse("umb://document/123456");
    

    as per the many threads on similair questions to this but this doesnt display the corresponding URL that im after to the page, media etc etc

  • Dave Woestenborghs 3504 posts 12135 karma points MVP 9x admin c-trib
    Feb 27, 2023 @ 14:05
    Dave Woestenborghs
    1

    Hi J,

    What type of property editor are you using for the selecting a node ?

    Dave

  • J 447 posts 864 karma points
    Feb 27, 2023 @ 14:09
    J
    0

    Hi

    I have an RTE and then it is selected using the Hyperlink option (i know i may need to amend the string to have it in the format umb://xx/yyyy but thats fine)

    Thanks

  • Dave Woestenborghs 3504 posts 12135 karma points MVP 9x admin c-trib
    Feb 27, 2023 @ 14:43
    Dave Woestenborghs
    1

    Hi J,

    How are you rendering your RTE ? Umbraco should take of setting the correct url for links in a RTE.

    Dave

  • J 447 posts 864 karma points
    Feb 27, 2023 @ 16:00
    J
    0

    Hi Dave

    RTE is rendered as text and the links do work on the public end.

    I need to get the link converted so i can take other actions so for this i just need to convert the Umb URL into the link it converts to which would help.

    Thanks

  • Dave Woestenborghs 3504 posts 12135 karma points MVP 9x admin c-trib
    Feb 28, 2023 @ 07:35
    Dave Woestenborghs
    1

    Hi J,

    Can you explain what you are trying to achieve. Because you confirm that the links are converted on the frontend.

    So I am not exactly sure what you are trying to achieve.

    Dave

  • J 447 posts 864 karma points
    Feb 28, 2023 @ 08:13
    J
    0

    Hi Dave

    All I'm trying to achieve is to convert this

    umb://document/123456
    

    to

    /document/paperclip.docx
    

    or whatever value i have for the umb:// i would like to convert that into a hyperlink in C# code so i can take some action on this.

    Thanks

  • Dave Woestenborghs 3504 posts 12135 karma points MVP 9x admin c-trib
    Feb 28, 2023 @ 10:36
    Dave Woestenborghs
    1

    Hi J,

    Can I ask which version you are on. The code for doing this depends on that. And also where you want to do this... a view or C# class.

    Dave

  • J 447 posts 864 karma points
    Feb 28, 2023 @ 11:26
    J
    0

    Hi Dave

    Its version 8.17.

    Thanks

  • Dave Woestenborghs 3504 posts 12135 karma points MVP 9x admin c-trib
    Mar 01, 2023 @ 10:17
    Dave Woestenborghs
    100

    Hi J,

    If you are in a view you can do the following :

     var url = string.Empty;
    
        if (Udi.TryParse("umb://document/123456", out var udi))
        {
            var content = Umbraco.Content(udi);
    
            if (content != null)
            {
                url = content.Url();
            }
        }
    

    In C# classes you can do the following.

    var url = string.Empty;
    
        if (Udi.TryParse("umb://document/123456", out var udi))
        {
            var contextAccessor = Current.Factory.GetInstance<IUmbracoContextAccessor>();
    
            var context = contextAccessor.UmbracoContext;
    
            var content = context.Content.GetById(udi);
    
            if (content != null)
            {
                url = content.Url();
            }
        }
    

    You can also inject the IUmbracoContextAccessor instead of using Current to get it.

    Dave

  • 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