2012-06-03 20 views
1

我试图将一个css类添加到@ html.actionlink并且不想使用链接中的文本。我想用图形代替。如何使用@ html.actionlink删除链接文本

这里是我的代码:

@Html.ActionLink("Edit", "PopupReferenceEdit", new { id = item.VolunteerReferenceID }, new { @class = "Grid-editor" }) 

当我删除“编辑”我得到一个错误。是否有可能使用此声明并为链接提供图标/图像? 感谢您解答这个新手问题。 Andy

+1

最相关的问题,但这里是一个使用CSS隐藏文字提问:HTTP:// stackoverflow.com/q/596444/342156 –

+0

你试过空串吗? @ Html.ActionLink(“”,“PopupReferenceEdit”,新... – killebytes

回答

0

我认为更好的方法是为你的助手文件夹中的这些重载创建一个扩展方法,然后在你的视图中使用它。只是取决于个人喜好

public static class ImageActionLinkHelper 
    { 
    public static string ImageActionLink(this HtmlHelper helper, string ImageUrl, string altText, string actionName, object routeValues) 
    { 

    var builder = new TagBuilder("img"); 
    builder.MergeAttribute("src", ImageUrl); 
    builder.MergeAttribute("alt", altText); 
    builder.MergeAttribute("title", altText); 
    var link = helper.ActionLink("[replaceme]", actionName, routeValues, new { @class = "imgicon" }); 
    return link.ToString().Replace("[replaceme]", builder.ToString(TagRenderMode.SelfClosing)); 
} 




public static string ImageActionLink(this HtmlHelper helper, string ImageUrl, string altText, string actionName, object routeValues, string Id, string display) 
{ 
    var builder = new TagBuilder("img"); 
    builder.MergeAttribute("src", ImageUrl); 
    builder.MergeAttribute("alt", altText); 
    builder.MergeAttribute("title", altText); 
    var link = helper.ActionLink("[replaceme]", actionName, routeValues, new { @class = "imgicon", id = Id, style = display }); 

    return link.ToString().Replace("[replaceme]", builder.ToString(TagRenderMode.SelfClosing)); 
} 

使用它SO建议手动创建``元素

@Html.ImageActionLink("../../Content/images/edit.png", "Edit", "Edit", new { id = item.UserId}) 
+0

太棒了!非常感谢。Andy –