[转载] MVC3自定义标签,给Html.ActionLink加上支持图片链接的功能

来源:互联网 发布:深度优化dnf客户端方法 编辑:程序博客网 时间:2024/05/27 14:14
Html.ActionLink只支持文字链接,现在我们利用C#的扩展方法写一个Html.ActionLinkWithImage()让其支持图片链接的功能。
一、首先新建一个静态类,将命名空间在改在System.Web.Mvc下,代码如下

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace System.Web.Mvc {     public static class MyHelpler     {         public static MvcHtmlString ActionLinkWithImage(this HtmlHelper html, string imgSrc, string actionName)         {             var urlHelper = new UrlHelper(html.ViewContext.RequestContext);             string imgUrl = urlHelper.Content(imgSrc);             TagBuilder imgTagBuilder = new TagBuilder("img");             imgTagBuilder.MergeAttribute("src", imgUrl);             string img = imgTagBuilder.ToString(TagRenderMode.SelfClosing);             string url = urlHelper.Action(actionName);             TagBuilder tagBuilder = new TagBuilder("a")             {                 InnerHtml = img             };             tagBuilder.MergeAttribute("href", url);             return new MvcHtmlString(tagBuilder.ToString(TagRenderMode.Normal));         }         public static MvcHtmlString ActionLinkWithImage(this HtmlHelper html, string imgSrc, string actionName,string controllerName,object routeValue=null)         {             var urlHelper = new UrlHelper(html.ViewContext.RequestContext);             string imgUrl = urlHelper.Content(imgSrc);             TagBuilder imgTagBuilder = new TagBuilder("img");             imgTagBuilder.MergeAttribute("src", imgUrl);             string img = imgTagBuilder.ToString(TagRenderMode.SelfClosing);             string url = urlHelper.Action(actionName, controllerName, routeValue);             TagBuilder tagBuilder = new TagBuilder("a")             {                 InnerHtml = img             };             tagBuilder.MergeAttribute("href", url);             return new MvcHtmlString(tagBuilder.ToString(TagRenderMode.Normal));         }     } }

 

二、在view下使用:

@Html.ActionLinkWithImage(Url.Content("~/Content/images/index_1.gif"), "Index")@Html.ActionLinkWithImage(Url.Content("~/Content/images/index_2.gif"), "List","Admin", new { id=1})

 

 

原创粉丝点击