как сделать html.actionlink без текста, но с изображением внутри - PullRequest
8 голосов
/ 14 сентября 2010

это просто html:

<%--
<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" }) %>

Я бы хотел, чтобы у меня была ссылка без текста. это не работает, ноль в первом параметре не допускается. Изображение должно быть коротким, как обычно. Как я могу использовать html.actionlink без текста, но с изображением ??

Ответы [ 3 ]

11 голосов
/ 14 сентября 2010

Вот решение.

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

По сути, ActionLink предназначен для текстовых ссылок и не имеет эквивалента для изображений, но вы можете использовать Url.RouteUrl, чтобы получить адрес для ссылки и поместить любой HTML-код, который вам нравится, внутри якоря (конечно, W3C позволяет ).

8 голосов
/ 27 октября 2011

Этот способ проще всего (с помощью 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>
3 голосов
/ 14 сентября 2010

на основе предыдущего вопроса 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 можно найти здесь: Существует ли ASP.NET MVC HtmlHelper для ссылок на изображения?

...