Rendering URLs
Render Page URLs and Media URLs in User Control functions
To render a page URL or a media URL in a C1 CMS compliant way, you can use /page(...) and /media(...):
.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RenderUrls.ascx.cs" Inherits="C1Function" %> <asp:HyperLink runat="server" ID="funnyPage" ><%= PageUrl.Data.Title %></asp:HyperLink> <asp:Image ID="fancyImage" runat="server" />
.ascx.cs
using System;
using Composite.Functions;
using Composite.Data;
using Composite.Data.Types;
public partial class C1Function : Composite.AspNet.UserControlFunction
{
    public override string FunctionDescription
    {
        get
        {
            return "A demo function that shows a page link and an image.";
        }
    }
    public DataReference<IPage> PageUrl { get; set; }
    public DataReference<IMediaFile> ImageSource { get; set; }  
    protected void Page_Load(object sender, EventArgs e)
    {
        funnyPage.NavigateUrl = String.Format("/page({0})", PageUrl.Data.Id);
        fancyImage.ImageUrl = String.Format("/media({0})", ImageSource.Data.Id);
    }
}With page URLs you can also use SitemapNavigator to render URLs.
.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RenderUrlsWithSitemapNavigator.ascx.cs" Inherits="C1Function" %> <asp:HyperLink runat="server" ID="funnyPage" ><%= PageUrl.Data.Title %></asp:HyperLink>
.ascx.cs
using System;
using Composite.Functions;
using Composite.Data;
using Composite.Data.Types;
public partial class C1Function : Composite.AspNet.UserControlFunction
{
    public override string FunctionDescription
    {
        get 
        { 
            return "A demo function that shows a page link using SitemapNavigator."; 
        }
    }
    public DataReference<IPage> PageUrl { get; set; }
    protected void Page_Load(object sender, EventArgs e)
    {
        using (var connection = new DataConnection()){
            funnyPage.NavigateUrl = connection.SitemapNavigator.GetPageNodeById(PageUrl.Data.Id).Url;
        }
    }
} Download the sample

