diff --git a/src/Orchard/Mvc/Html/ContentItemExtensions.cs b/src/Orchard/Mvc/Html/ContentItemExtensions.cs index 8524091c7..c8caa9a03 100644 --- a/src/Orchard/Mvc/Html/ContentItemExtensions.cs +++ b/src/Orchard/Mvc/Html/ContentItemExtensions.cs @@ -100,6 +100,19 @@ namespace Orchard.Mvc.Html { Convert.ToString(metadata.EditorRouteValues["action"]), metadata.EditorRouteValues.Merge(additionalRouteValues)); } + + public static MvcHtmlString ItemEditLink(this HtmlHelper html, string linkText, IContent content, object additionalRouteValues, object htmlAttributes = null) + { + var metadata = content.ContentItem.ContentManager.GetItemMetadata(content); + if (metadata.EditorRouteValues == null) + return null; + + return html.ActionLink( + NonNullOrEmpty(linkText, metadata.DisplayText, content.ContentItem.TypeDefinition.DisplayName), + Convert.ToString(metadata.EditorRouteValues["action"]), + metadata.EditorRouteValues.Merge(additionalRouteValues), + new RouteValueDictionary(htmlAttributes)); + } public static MvcHtmlString ItemAdminLink(this HtmlHelper html, IContent content) { return ItemAdminLink(html, null, content);