VC3自定义标签,给ajax.Action和Html.ActionLink加上支持图片链接的功能,添加了htmlAttributes

 //ajax.Action加图片
public static MvcHtmlString AjaxActionWithImage(this AjaxHelper html, string imgSrc, string actionName, object routeValue = null, AjaxOptions ajaxOptions = 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, urlHelper.RequestContext.RouteData.Values["controller"].ToString(), routeValue);

TagBuilder tagBuilder = new TagBuilder("a")
{
InnerHtml = img
};

tagBuilder.MergeAttribute("href", url);
tagBuilder.MergeAttributes((ajaxOptions ?? new AjaxOptions()).ToUnobtrusiveHtmlAttributes());
return new MvcHtmlString(tagBuilder.ToString(TagRenderMode.Normal));
}

 

 


#region MVC3自定义标签,给Html.ActionLink加上支持图片链接的功能 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, object routeValue = null, object htmlAttributes = 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, urlHelper.RequestContext.RouteData.Values["controller"].ToString(), routeValue); TagBuilder tagBuilder = new TagBuilder("a") { InnerHtml = img }; tagBuilder.MergeAttribute("href", url); tagBuilder.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)); 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)); } } #endregion

  使用方法

 @Html.ActionLinkWithImage("../../Content/Images/Plus.png", "ReportSet_Add1", new { }, new { onclick = "return check1();" })

  

posted @ 2014-01-06 10:52  那缕阳光  阅读(346)  评论(0)    收藏  举报