/// <summary> /// Add canonical URL element to the <![CDATA[<head>]]> /// </summary> /// <param name="html">HTML helper</param> /// <param name="part">Canonical URL part</param> /// <param name="pageHeadBuilder"></param> public static void AddCanonicalUrlParts(this HtmlHelper html, string part, IPageHeadBuilder pageHeadBuilder = null) { if (pageHeadBuilder == null) pageHeadBuilder = EngineContext.Current.Resolve<IPageHeadBuilder>(); pageHeadBuilder.AddCanonicalUrlParts(part); }
/// <summary> /// Add canonical URL element to the <![CDATA[<head>]]> /// </summary> /// <param name="html">HTML helper</param> /// <param name="part">Canonical URL part</param> /// <param name="withQueryString">Whether to use canonical URLs with query string parameters</param> public static void AddCanonicalUrlParts(this IHtmlHelper html, string part, bool withQueryString = false) { IPageHeadBuilder pageHeadBuilder = ServiceProviderFactory.ServiceProvider.GetService <IPageHeadBuilder>(); if (withQueryString) { //add ordered query string parameters System.Collections.Generic.Dictionary <string, string> queryParameters = html.ViewContext.HttpContext.Request.Query.OrderBy(parameter => parameter.Key) .ToDictionary(parameter => parameter.Key, parameter => parameter.Value.ToString()); part = QueryHelpers.AddQueryString(part, queryParameters); } pageHeadBuilder.AddCanonicalUrlParts(part); }