- Implementing ASP.NET MVC Ajax.ActionLink with Image
- public static class ImageHelpers
- {
- /// <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 query string, 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 strOthers, string strImageURL,
- string alternateText, string strStyle, string cssClass = "imagelink")
- {
- return ImageLink(helper, id, controller, action, strOthers, strImageURL, alternateText, strStyle, null, cssClass);
- }
- /// <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 query string, 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>
- /// <param name="htmlAttributes">html attributes for link</param>
- /// <returns></returns>
- public static string ImageLink(this HtmlHelper helper, string id, string controller, string action, string strOthers, string strImageURL,
- string alternateText, string strStyle, object htmlAttributes, string cssClass = "imagelink")
- {
- var portalModel = ContextCache<PortalModel>.Get(ContextCache.PortalModelSessionCache);
- // Create tag builder
- var divBuilder = new TagBuilder("div");
- divBuilder.AddCssClass(cssClass);
- var aBuilder = new TagBuilder("a");
- // Create valid id
- if (!string.IsNullOrEmpty(id))
- aBuilder.GenerateId(id);
- // Add attributes
- aBuilder.MergeAttribute("href", "/" + portalModel.PortalTag + "/" + controller + "/" + action + strOthers); //form target URL
- aBuilder.InnerHtml = "<img src='" + strImageURL + "' alt='" + alternateText + "' class='" + cssClass + "' style='border: none;'/>" + alternateText; //set the image as inner html
- aBuilder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
- divBuilder.InnerHtml = aBuilder.ToString(TagRenderMode.Normal); //to add </a> as end tag
- // Render tag
- return divBuilder.ToString(TagRenderMode.Normal);
- }
- }
- public static class ImageHelpers
- {
- /// <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 query string, 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 strOthers, string strImageURL,
- string alternateText, string strStyle, string cssClass = "imagelink")
- {
- return ImageLink(helper, id, controller, action, strOthers, strImageURL, alternateText, strStyle, null, cssClass);
- }
- /// <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 query string, 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>
- /// <param name="htmlAttributes">html attributes for link</param>
- /// <returns></returns>
- public static string ImageLink(this HtmlHelper helper, string id, string controller, string action, string strOthers, string strImageURL,
- string alternateText, string strStyle, object htmlAttributes, string cssClass = "imagelink")
- {
- var portalModel = ContextCache<PortalModel>.Get(ContextCache.PortalModelSessionCache);
- // Create tag builder
- var divBuilder = new TagBuilder("div");
- divBuilder.AddCssClass(cssClass);
- var aBuilder = new TagBuilder("a");
- // Create valid id
- if (!string.IsNullOrEmpty(id))
- aBuilder.GenerateId(id);
- // Add attributes
- aBuilder.MergeAttribute("href", "/" + portalModel.PortalTag + "/" + controller + "/" + action + strOthers); //form target URL
- aBuilder.InnerHtml = "<img src='" + strImageURL + "' alt='" + alternateText + "' class='" + cssClass + "' style='border: none;'/>" + alternateText; //set the image as inner html
- aBuilder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
- divBuilder.InnerHtml = aBuilder.ToString(TagRenderMode.Normal); //to add </a> as end tag
- // Render tag
- return divBuilder.ToString(TagRenderMode.Normal);
- }
- }