0
创建ActionImage这是一个跟进我刚才的问题:How do you map areas on icon set to buttons?如何从一个CSS雪碧
我决定把我自己的HtmlHelper
扩展,以创建一个ActionImage
链接,所以我拆解一些流行的扩展张贴在SO和得到这个:
// Controller/Action Image Link
public static MvcHtmlString ActionImage(this HtmlHelper html,
string controller, string action, object routeValues,
string imageSrc, string alternateText, object imageAttributes)
{
UrlHelper url = new UrlHelper(html.ViewContext.RequestContext);
// build the <img> tag
TagBuilder imgBuilder = new TagBuilder("img");
imgBuilder.MergeAttribute("src", url.Content(imageSrc));
imgBuilder.MergeAttribute("alternateText", alternateText);
string imgHtml = imgBuilder.ToString(TagRenderMode.SelfClosing);
// build the <a> tag
TagBuilder anchorBuilder = new TagBuilder("a");
anchorBuilder.MergeAttribute("href", url.Action(action, controller, routeValues));
anchorBuilder.InnerHtml = imgHtml; // include the <img> tag inside
string anchorHtml = anchorBuilder.ToString(TagRenderMode.Normal);
return MvcHtmlString.Create(anchorHtml);
}
现在的问题是,我有一个CSS雪碧用,我不知道如何使它与ActionImage
扩展方法工作:
@Html.ActionImage("Account", "LogOn", null, Sprite.Image("~/App_Sprites/twitterlogin.png"), "", null)
我试着调用精灵的ToString()
方法,但它不返回URL。是否有另一种方法来实现这一点?
这做到了!梅尔西:) – Kiril