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