这很简单:
<%--
<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但是有图像??
答案 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时代开始)来显示隐藏的空白字符。到目前为止,我还没有遇到任何技巧。