SaaS CMS has officially launched! Learn more now.

set the link property in episervear


Hi have a page property and and pagelinkTitle property . I want to create a link like

<li><a href="#"><EPiServer:Property PropertyName="pagelinkTitle" runat="server" /></a></li>.

in my a href I want page Propert link. How do i write this property.

Dec 08, 2010 7:51

There are many ways to do things like this, it depends on what you're after and in which context you are using it.

You can use the LinkURL property of the PageData object, like so <%= CurrentPage.LinkURL %>

If you are using this in a PageList for example you can use the Container.CurrentPage for the page currently in the loop of the pagelist. And you'd have to use DataBinding syntax <%# Container.Currentpage.LinkURL %>

You should also think about encoding the attribute, and possibly about getting a friendly url. You could also use a asp:HyperLink control and set things from codebehind and you wouldn't have to care about encoding.

The easiest way is really to use the property control with the PageLink property, which will render a link with the page's name as text: <EPiServer:Property PropertyName="PageLink" runat="server" />

Dec 08, 2010 9:27

Hi Magnus!

Thanks for the Reply.

I am getting the value in the code behind like this way.

langLink.NavigateUrl = startPage["LanguageLink1"].ToString();

does the page type Property returns only pageid I want the pageLink but startPage["LanguageLink1"] gives me only the pageID.

Dec 08, 2010 10:28

If your property "LanguageLink1" is of the type "Page" then it will contain a reference to the page, and if you ToString it, it will return the ID.

To get the URL you first need to get the PageData object corresponding to the reference, and to get that you first have to get the reference in it's right form:

var pageLink = startPage["LanguageLink1"] as PageReference;
var page = DataFactory.Instance.GetPage(pageLink);
var url = page.LinkURL

You should of course add some error handling for when the property is not set etc.

Edit: Typo

Edited, Dec 08, 2010 10:31


I am getting error in that

PageData startPage = DataFactory.Instance.GetPage(PageReference.StartPage);

var pageLink = startPage["LanguageLink1]" as PageReference;
var page = DataFactory.Instance.GetPage(pageLink);
var url = page.LinkURL

Cannot convert type string into episerver.core.pagerefrence.

Dec 08, 2010 10:38

No that shouldn't even compile. I made a typo but corrected it. Intellisense should even tell you that there's something seriously wrong with that line :)

Dec 08, 2010 10:40

You could also take a look at Itera:MultiProperty here you could render the code as this:

<Itera:Property runat="server" PropertyName="LanguageLink1">

<ItemTemplate><a href="{LanguageLink1.LinkURL}">{PageName}</a>


This code will take the link from the page LanguageLink1 and the name of the currentpage.

Dec 08, 2010 14:25



I am trying to show the "" + the Simple address for the page or friendly URL.  Any ideas on how this could be possible for a pageTree?

Oct 29, 2012 0:17
// Simple adress
UriBuilder url = new UriBuilder(Settings.Instance.SiteUrl);
url.Path = CurrentPage["PageExternalURL"] as string;

string simpleAdress = url.Uri.AbsoluteUri;

  And here's a handy extension method for friendly URL:

public static string ExternalURL(this PageData p, bool absoluteUrl)
    UrlBuilder pageURLBuilder = new UrlBuilder(p.LinkURL);

    Global.UrlRewriteProvider.ConvertToExternal(pageURLBuilder, p.PageLink, UTF8Encoding.UTF8);

    string pageURL = pageURLBuilder.ToString();

    if (absoluteUrl)
        UriBuilder uriBuilder = new UriBuilder(Settings.Instance.SiteUrl);

        uriBuilder.Path = pageURL;

        return uriBuilder.Uri.AbsoluteUri;

    return pageURL;


Edited, Oct 29, 2012 1:18
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.