Try our conversational search powered by Generative AI!

Class UrlResolver

Class that routes an url to the corresponding IContent instance or vice versa.

Inheritance
System.Object
UrlResolver
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: EPiServer.Web.Routing
Assembly: EPiServer.dll
Version: 7.19.2
Syntax
public class UrlResolver

Constructors

UrlResolver()

Initializes a new instance of the UrlResolver class.

Declaration
public UrlResolver()

UrlResolver(RouteCollection, IContentLoader, LanguageSelectorFactory, SiteDefinitionRepository, TemplateResolver, IPermanentLinkMapper)

Initializes a new instance of the UrlResolver class.

Declaration
public UrlResolver(RouteCollection routes, IContentLoader contentLoader, LanguageSelectorFactory languageSelectorFactory, SiteDefinitionRepository siteDefinitionRepository, TemplateResolver templateResolver, IPermanentLinkMapper permanentLinkMapper)
Parameters
Type Name Description
System.Web.Routing.RouteCollection routes

The routes.

IContentLoader contentLoader

The content loader.

LanguageSelectorFactory languageSelectorFactory

The language selector factory.

SiteDefinitionRepository siteDefinitionRepository

The site definition repository.

TemplateResolver templateResolver

The template resolver.

IPermanentLinkMapper permanentLinkMapper

The permanent link mapper.

Properties

Current

Gets the current instance from the ServiceLocator.

Declaration
public static UrlResolver Current { get; }
Property Value
Type Description
UrlResolver

The current instance.

PreferredLanguageAccessor

Exposes the accessor used to get PreferredLanguage.

Declaration
public Func<string> PreferredLanguageAccessor { get; set; }
Property Value
Type Description
System.Func<System.String>

The preferred language accessor.

Remarks

This is primarly exposed to make it possible to change in unit tests. By default the value is set PreferredCulture.

RoutedQueryParameters

Contains a list of query paramters that are passed on to routing.

Declaration
public static IEnumerable<string> RoutedQueryParameters { get; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<System.String>

Methods

ConvertPermanentToClassic(UrlBuilder)

Converts the permanent to classic.

Declaration
protected virtual string ConvertPermanentToClassic(UrlBuilder urlBuilder)
Parameters
Type Name Description
UrlBuilder urlBuilder

The URL builder.

Returns
Type Description
System.String
Remarks

For internal use only

ConvertToPermanent(UrlBuilder, IContent)

Declaration
protected virtual bool ConvertToPermanent(UrlBuilder url, IContent content)
Parameters
Type Name Description
UrlBuilder url
IContent content
Returns
Type Description
System.Boolean

GetPermanent(String, Boolean)

Tries to resolve the URL to a permanent URL. If this does not possible it returns the original URL.

Declaration
public virtual string GetPermanent(string url, bool enableFallback)
Parameters
Type Name Description
System.String url

The URL.

System.Boolean enableFallback

If set to true returns the given URL if the conversion fails.

Returns
Type Description
System.String

Either a permanent URL or the given URL/String.Empty depending on if fallback is enabled.

GetUrl(ContentReference)

Gets the URL for a IContent instance that is given by reference contentLink.

Declaration
public virtual string GetUrl(ContentReference contentLink)
Parameters
Type Name Description
ContentReference contentLink

The content link.

Returns
Type Description
System.String

A string representing the URL or null if it was not possible to create a route to the content (for example the content does not exist or has no template)

Remarks

This method will get the URL for the language given by PreferredCulture.

GetUrl(ContentReference, String)

Gets the URL for a IContent instance that is given by reference contentLink

Declaration
public virtual string GetUrl(ContentReference contentLink, string language)
Parameters
Type Name Description
ContentReference contentLink

The content.

System.String language

The language.

Returns
Type Description
System.String

A string representing the URL or null if it was not possible to create a route to the content (for example the content does not exist or has no template)

GetUrl(ContentReference, String, VirtualPathArguments)

Gets the URL for a IContent instance that is given by argument virtualPathArguments.

Declaration
public virtual string GetUrl(ContentReference contentLink, string language, VirtualPathArguments virtualPathArguments)
Parameters
Type Name Description
ContentReference contentLink

The content link.

System.String language

The language.

VirtualPathArguments virtualPathArguments

The virtual path arguments.

Returns
Type Description
System.String

A string representing the URL or null if it was not possible to create a route to the content (for example the content does not exist or has no template)

GetUrl(UrlBuilder, ContextMode)

Resolves the URL for an item from an URL with internal format.

Declaration
public virtual string GetUrl(UrlBuilder urlBuilderWithInternalUrl, ContextMode mode)
Parameters
Type Name Description
UrlBuilder urlBuilderWithInternalUrl

The URL with a internal format.

ContextMode mode

The ContextMode that determines the format of the link.

Returns
Type Description
System.String

A URL in string representation.

GetUrl(UrlBuilder, VirtualPathArguments)

Resolves the URL for an item from an URL with internal format.

Declaration
public virtual string GetUrl(UrlBuilder urlBuilderWithInternalUrl, VirtualPathArguments arguments)
Parameters
Type Name Description
UrlBuilder urlBuilderWithInternalUrl

The URL with a internal format.

VirtualPathArguments arguments

The VirtualPathArguments that determines the format of the link.

Returns
Type Description
System.String

A URL in string representation.

GetUrl(Guid)

Resolves the URL for an item from a guid format.

Declaration
protected virtual string GetUrl(Guid contentGuid)
Parameters
Type Name Description
System.Guid contentGuid

The content guid.

Returns
Type Description
System.String

A URL in string representation.

Remarks

This member supports the EPiServer infrastructure and is not intended to be used directly from your code.

GetUrl(String)

Resolves the URL for an item from an URL with internal format.

Declaration
public virtual string GetUrl(string internalUrl)
Parameters
Type Name Description
System.String internalUrl

The URL with a internal format.

Returns
Type Description
System.String

A URL in string representation.

GetVirtualPath(ContentReference)

Declaration
[Obsolete("Use GetUrl instead.", false)]
public virtual string GetVirtualPath(ContentReference contentLink)
Parameters
Type Name Description
ContentReference contentLink

The content.

Returns
Type Description
System.String
Remarks

This method will get the url for the language given by PreferredCulture.

GetVirtualPath(ContentReference, String)

Gets the url for a IContent instance that is given by reference contentLink

Declaration
[Obsolete("Use GetUrl instead.", false)]
public virtual string GetVirtualPath(ContentReference contentLink, string language)
Parameters
Type Name Description
ContentReference contentLink

The content.

System.String language

The language.

Returns
Type Description
System.String

GetVirtualPath(ContentReference, String, VirtualPathArguments)

Gets the url for a IContent instance that is given by reference virtualPathArguments

Declaration
public virtual VirtualPathData GetVirtualPath(ContentReference contentLink, string language, VirtualPathArguments virtualPathArguments)
Parameters
Type Name Description
ContentReference contentLink

The content link.

System.String language

The language.

VirtualPathArguments virtualPathArguments

The virtual path arguments.

Returns
Type Description
System.Web.Routing.VirtualPathData

A virtual path or null if it was not possible to create a route to the content (for example the content does not exist or has no template)

GetVirtualPath(ContentReference, String, RouteValueDictionary, RequestContext)

Gets the url for a IContent instance that is given by reference contentLink

Declaration
public virtual VirtualPathData GetVirtualPath(ContentReference contentLink, string language, RouteValueDictionary routeValues, RequestContext requestContext)
Parameters
Type Name Description
ContentReference contentLink

The content.

System.String language

The language.

System.Web.Routing.RouteValueDictionary routeValues

The route values.

System.Web.Routing.RequestContext requestContext

The request context.

Returns
Type Description
System.Web.Routing.VirtualPathData

A virtual path or null if it was not possible to create a route to the content (for example the content does not exist or has no template)

GetVirtualPathForNonContent(Object, String, VirtualPathArguments)

Gets the virtual path for an object that is not an IContent object but has been routed by a partial router.

Declaration
public virtual VirtualPathData GetVirtualPathForNonContent(object partialRoutedObject, string language, VirtualPathArguments virtualPathArguments)
Parameters
Type Name Description
System.Object partialRoutedObject

The partial routed object.

System.String language

The language.

VirtualPathArguments virtualPathArguments

The virtual path arguments.

Returns
Type Description
System.Web.Routing.VirtualPathData
Remarks

For virtual path to IContent, use the GetVirtualPath method with the content's ContentReference, which also handles cases where the content is partial routed.

GetVirtualPathForPartialRouted(Object, String)

Declaration
[Obsolete("Use GetVirtualPathForNonContent")]
public virtual VirtualPathData GetVirtualPathForPartialRouted(object partialRoutedObject, string language)
Parameters
Type Name Description
System.Object partialRoutedObject
System.String language
Returns
Type Description
System.Web.Routing.VirtualPathData

Route(UrlBuilder)

Routes the URL to the corresponding IContent instance.

Declaration
public virtual IContent Route(UrlBuilder urlBuilder)
Parameters
Type Name Description
UrlBuilder urlBuilder

The URL builder.

Returns
Type Description
IContent

Route(UrlBuilder, ContextMode)

Routes the URL to the corresponding IContent instance.

Declaration
public virtual IContent Route(UrlBuilder urlBuilder, ContextMode contextMode)
Parameters
Type Name Description
UrlBuilder urlBuilder

The URL builder.

ContextMode contextMode

The ContextMode

Returns
Type Description
IContent

TryToPermanent(String, out String)

Tries to convert a URL with either a public, preview or permanent format to a permanent URL.

Declaration
public virtual bool TryToPermanent(string url, out string permanentUrl)
Parameters
Type Name Description
System.String url

The URL.

System.String permanentUrl

The permanent URL.

Returns
Type Description
System.Boolean

True if the conversion succeded, otherwise; false.

Extension Methods