我知道使用 Html.ActionLink()来呈现文本 a href ...“链接到操作. 如何呈现指向具有基础图像作为链接的操作的链接? a href="foo"img src="asdfasdf"//a 这是我使用的ImageLink HtmlHelper扩展的代码. /*
如何呈现指向具有基础图像作为链接的操作的链接?
<a href="foo"><img src="asdfasdf"/></a>这是我使用的ImageLink HtmlHelper扩展的代码.
/* * Image Link HTML helper */ /// <summary> /// return image link /// </summary> /// <param name="helper"></param> /// <param name="imageUrl">URL for image</param> /// <param name="controller">target controller name</param> /// <param name="action">target action name</param> /// <param name="linkText">anchor text</param> public static string ImageLink(this HtmlHelper helper, string imageUrl, string controller, string action, string linkText) { return ImageLink(helper, null, controller, action, linkText, imageUrl, null, null, null, null); } /// <summary> /// return image link /// </summary> /// <param name="helper"></param> /// <param name="imageUrl">URL for image</param> /// <param name="controller">target controller name</param> /// <param name="action">target action name</param> /// <param name="linkText">anchor text</param> /// <param name="htmlAttributes">anchor attributes</param> public static string ImageLink(this HtmlHelper helper, string imageUrl, string controller, string action, string linkText, object htmlAttributes) { return ImageLink(helper, null, controller, action, linkText, imageUrl, null, null, new RouteValueDictionary(htmlAttributes), null); } /// <summary> /// return image link /// </summary> /// <param name="helper"></param> /// <param name="imageUrl">URL for image</param> /// <param name="controller">target controller name</param> /// <param name="action">target action name</param> /// <param name="linkText">anchor text</param> /// <param name="htmlAttributes">anchor attributes</param> /// <param name="routeValues">route values</param> public static string ImageLink(this HtmlHelper helper, string imageUrl, string controller, string action, string linkText, object htmlAttributes, object routeValues) { return ImageLink(helper, null, controller, action, linkText, imageUrl, null, null, new RouteValueDictionary(htmlAttributes), new RouteValueDictionary(routeValues)); } /// <summary> /// return image link /// </summary> /// <param name="helper"></param> /// <param name="id">Id of link control</param> /// <param name="controller">target controller name</param> /// <param name="action">target action name</param> /// <param name="strOthers">other URL parts like querystring, etc</param> /// <param name="strImageURL">URL for image</param> /// <param name="alternateText">Alternate Text for the image</param> /// <param name="strStyle">style of the image like border properties, etc</param> /// <returns></returns> public static string ImageLink(this HtmlHelper helper, string id, string controller, string action, string linkText, string strImageURL, string alternateText, string strStyle) { return ImageLink(helper, id, controller, action, linkText, strImageURL, alternateText, strStyle, null, null); } /// <summary> /// return image link /// </summary> /// <param name="helper"></param> /// <param name="id">Id of link control</param> /// <param name="controller">target controller name</param> /// <param name="action">target action name</param> /// <param name="linkText">anchor text</param> /// <param name="strImageURL">URL for image</param> /// <param name="alternateText">Alternate Text for the image</param> /// <param name="strStyle">style of the image like border properties, etc</param> /// <param name="htmlAttributes">html attribues for link</param> /// <returns></returns> public static string ImageLink(this HtmlHelper helper, string id, string controller, string action, string linkText, string strImageURL, string alternateText, string strStyle, IDictionary<string, object> htmlAttributes, RouteValueDictionary routeValues) { // Build the img tag TagBuilder image = new TagBuilder("img"); image.MergeAttribute("src", strImageURL); image.MergeAttribute("alt", alternateText); image.MergeAttribute("valign", "middle"); image.MergeAttribute("border", "none"); TagBuilder span = new TagBuilder("span"); // Create tag builder var anchor = new TagBuilder("a"); var url = new UrlHelper(helper.ViewContext.RequestContext).Action(action, controller, routeValues); // Create valid id anchor.GenerateId(id); // Add attributes //anchor.MergeAttribute("href", "/" + controller + "/" + action); //form target URL anchor.MergeAttribute("href", url); anchor.MergeAttribute("class", "actionImage"); if (htmlAttributes != null) anchor.MergeAttributes(new RouteValueDictionary(htmlAttributes)); // place the img tag inside the anchor tag. if (String.IsNullOrEmpty(linkText)) { anchor.InnerHtml = image.ToString(TagRenderMode.Normal); } else { span.InnerHtml = linkText; anchor.InnerHtml = image.ToString(TagRenderMode.Normal) + " " + span.ToString(TagRenderMode.Normal); } // Render tag return anchor.ToString(TagRenderMode.Normal); //to add </a> as end tag }