MvcHtml.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Collections.Generic;
  2. using System.Web.Mvc;
  3. namespace CommonTool
  4. {
  5. public static class MvcHtml
  6. {
  7. /// <summary>
  8. /// 生成包含图片的超链接
  9. /// <remarks>注:若actionName为空,则超链接的地址为当前App的Home页;
  10. /// 若actionName不为空,controllerName为空,则超链接地址为当前App的Home页对应的Action
  11. /// </remarks>
  12. /// </summary>
  13. /// <param name="html"></param>
  14. /// <param name="imgSrc">图片地址</param>
  15. /// <param name="actionName"></param>
  16. /// <param name="controllerName"></param>
  17. /// <param name="routeValue"></param>
  18. /// <param name="imgCssStyle"></param>
  19. /// <returns></returns>
  20. ///
  21. public static MvcHtmlString ActionLinkWithImage(this HtmlHelper html, string imgSrc, string actionName = "",
  22. string controllerName = "", object routeValue = null, string imgCssStyle = "border-style: none;")
  23. {
  24. var urlHelper = new UrlHelper(html.ViewContext.RequestContext);
  25. string imgUrl = urlHelper.Content(imgSrc);
  26. TagBuilder imgTagBuilder = new TagBuilder("img");
  27. IDictionary<string, object> imgAttributes = new Dictionary<string, object>();
  28. imgAttributes.Add("src", imgUrl);
  29. imgAttributes.Add("style", imgCssStyle); // 图片默认无边框
  30. imgTagBuilder.MergeAttributes(imgAttributes);
  31. string img = imgTagBuilder.ToString(TagRenderMode.SelfClosing);
  32. string linkUrl = urlHelper.Action(actionName, controllerName, routeValue);
  33. TagBuilder linkTagBuilder = new TagBuilder("a") {InnerHtml = img};
  34. linkTagBuilder.MergeAttribute("href", linkUrl);
  35. return new MvcHtmlString(linkTagBuilder.ToString(TagRenderMode.Normal));
  36. }
  37. }
  38. }