如何制作没有文字的html.actionlink,但里面有图片

时间:2010-09-14 07:05:55

标签: html asp.net-mvc actionlink

这很简单:

<%--
<a href="?language=de">
    <img src="/Images/Company/de.png" alt="Webseite auf Deutsch" style="border: 0;" />
</a>
--%>

我想从他们那里制作html.actionlink:

 <%= Html.ActionLink("", "ChangeCulture", "Account", new { lang = "de", returnUrl = this.Request.RawUrl }, new { @style = "background-image: url(/Images/Company/de.png)", @class = "languageLink" }) %>

我希望我的链接没有文字。它不起作用,在第一个参数中为null,不允许。图像是正常的短。我如何使用没有文本的html.actionlink但是有图像??

4 个答案:

答案 0 :(得分:11)

这是一个解决方案。

<a href="<%= Url.RouteUrl("MyRoute", new { id = Model.Id }) %>">
   <img src="myimage.png" alt="My Image" />.
</a>

基本上,ActionLink用于文本链接,并且没有图像的等效项,但您可以使用Url.RouteUrl获取链接的地址,并将您喜欢的任何HTML代码放入锚点(W3C允许当然)。

答案 1 :(得分:8)

这种方式最简单(使用Razor):

<a href="@Url.Action("Action", "Controller", new { lang = "de", returnUrl = this.Request.RawUrl }, new { @style = "background-image: url(/Images/Company/de.png)", @class = "languageLink" })"><img src="myimage.png" alt="My Image" /></a>

答案 2 :(得分:3)

基于之前的SO问题(已关闭),这是一个解决方案:

public static string ImageLink(this HtmlHelper htmlHelper, 
    string imgSrc, string alt, 
    string actionName, string controllerName, object routeValues, 
    object htmlAttributes, object imgHtmlAttributes)
{
    UrlHelper urlHelper = ((Controller)htmlHelper.ViewContext.Controller).Url;
    string imgtag = htmlHelper.Image(imgSrc, alt, imgHtmlAttributes);
    string url = urlHelper.Action(actionName, controllerName, routeValues);

    TagBuilder imglink = new TagBuilder("a");
    imglink.MergeAttribute("href", url);
    imglink.InnerHtml = imgtag;
    imglink.MergeAttributes(new RouteValueDictionary(htmlAttributes), true);

    return imglink.ToString();
}

orignal可在此处找到:Is there an ASP.NET MVC HtmlHelper for image links?

答案 3 :(得分:0)

这是我的不起眼的贡献,使用Razor(作为示例)来说明将Font Awsome字符用作图像:

<p>
@Html.ActionLink(" ", "Create", "RouteName", new { id = Model.ID }, new { @class = "fas fa-plus text-center" }) 
</p>

两个引号之间的字符为alt + 255(按ALT键,然后在num键盘上键入255,然后释放ALT键)。 实际上,“”,“”或string都没有。Empty与ActionLink一起使用,但alt-255可以。这是一个非常古老的技巧(从DOS时代开始)来显示隐藏的空白字符。到目前为止,我还没有遇到任何技巧。