diff --git a/src/Umbraco.Tests/Web/Mvc/HtmlHelperExtensionMethodsTests.cs b/src/Umbraco.Tests/Web/Mvc/HtmlHelperExtensionMethodsTests.cs
index adf5772f76..e7e4f363c1 100644
--- a/src/Umbraco.Tests/Web/Mvc/HtmlHelperExtensionMethodsTests.cs
+++ b/src/Umbraco.Tests/Web/Mvc/HtmlHelperExtensionMethodsTests.cs
@@ -29,5 +29,30 @@ namespace Umbraco.Tests.Web.Mvc
var output = _htmlHelper.Wrap("div", "hello world", new {style = "color:red;", onclick = "void();"});
Assert.AreEqual("
hello world
", output.ToHtmlString());
}
- }
-}
\ No newline at end of file
+
+ [Test]
+ public void GetRelatedLinkHtml_Simple()
+ {
+ var relatedLink = new Umbraco.Web.Models.RelatedLink {
+ Caption = "Link Caption",
+ NewWindow = true,
+ Link = "https://www.google.com/"
+ };
+ var output = _htmlHelper.GetRelatedLinkHtml(relatedLink);
+ Assert.AreEqual("Link Caption", output.ToHtmlString());
+ }
+
+ [Test]
+ public void GetRelatedLinkHtml_HtmlAttributes()
+ {
+ var relatedLink = new Umbraco.Web.Models.RelatedLink
+ {
+ Caption = "Link Caption",
+ NewWindow = true,
+ Link = "https://www.google.com/"
+ };
+ var output = _htmlHelper.GetRelatedLinkHtml(relatedLink, new { @class = "test-class"});
+ Assert.AreEqual("Link Caption", output.ToHtmlString());
+ }
+ }
+}
diff --git a/src/Umbraco.Web/HtmlHelperRenderExtensions.cs b/src/Umbraco.Web/HtmlHelperRenderExtensions.cs
index 30b4e64e33..90bc97ca19 100644
--- a/src/Umbraco.Web/HtmlHelperRenderExtensions.cs
+++ b/src/Umbraco.Web/HtmlHelperRenderExtensions.cs
@@ -965,5 +965,37 @@ namespace Umbraco.Web
#endregion
+ #region RelatedLink
+
+ ///
+ /// Renders an anchor element for a RelatedLink instance.
+ /// Format: <a href="relatedLink.Link" target="_blank/_self">relatedLink.Caption</a>
+ ///
+ /// The HTML helper instance that this method extends.
+ /// The RelatedLink instance
+ /// An anchor element
+ public static MvcHtmlString GetRelatedLinkHtml(this HtmlHelper htmlHelper, RelatedLink relatedLink)
+ {
+ return htmlHelper.GetRelatedLinkHtml(relatedLink, null);
+ }
+
+ ///
+ /// Renders an anchor element for a RelatedLink instance, accepting htmlAttributes.
+ /// Format: <a href="relatedLink.Link" target="_blank/_self" htmlAttributes>relatedLink.Caption</a>
+ ///
+ /// The HTML helper instance that this method extends.
+ /// The RelatedLink instance
+ /// An object that contains the HTML attributes to set for the element.
+ ///
+ public static MvcHtmlString GetRelatedLinkHtml(this HtmlHelper htmlHelper, RelatedLink relatedLink, object htmlAttributes)
+ {
+ var tagBuilder = new TagBuilder("a");
+ tagBuilder.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
+ tagBuilder.MergeAttribute("href", relatedLink.Link);
+ tagBuilder.MergeAttribute("target", relatedLink.NewWindow ? "_blank" : "_self");
+ tagBuilder.InnerHtml = HttpUtility.HtmlEncode(relatedLink.Caption);
+ return MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.Normal));
+ }
+ #endregion
}
}