Как вставить изображение с помощью HTML.ActionLink? - PullRequest
6 голосов
/ 08 сентября 2010

как вставить изображение в html.actionlink - asp.net mvc?

Я так и сделал, но это не работает.

<a href="<%= Html.ActionLink("search", "Search", new { searchText = "txtSearch" }, null); %>">
        <img alt="searchPage" style="vertical-align: middle;" height="17px"
            src="../../Stylesheets/search.PNG" title="search" />

Ответы [ 5 ]

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

Вы полностью неправильно используете помощник ActionLink.Помощник на самом деле создает тег <a href=".." ></a>.

Что вы действительно хотите использовать в этом случае (кроме вашего собственного письменного помощника), это:

<a href="<%= Url.Action("Search", new { searchText = "txtSearch" }) %>">
    <img alt="searchPage" style="vertical-align: middle;" height="17px"
        src="../../Stylesheets/search.PNG" title="search" />
</a>
12 голосов
/ 11 мая 2011

@ Trimack на 100% корректно с MVC2.Если люди ищут эквивалент MVC3, вот он ...

<a href="@Url.Action("Search", new { searchText = "txtSearch" })">
    <img alt="searchPage" style="vertical-align: middle;" height="17px" src="../../Stylesheets/search.PNG" title="search" /> 
</a> 
1 голос
/ 03 ноября 2013

Если вы хотите отобразить несколько изображений, вы можете использовать свойство Html.ActionLink в вашем View, как показано ниже.В этом примере я использую Детали / Редактировать / Удалить изображения в качестве кнопки в столбце Действие.

Примечание: Тип Title, Controller и Action имя в Html.ActionLink в соответствиик вашему проекту.Если вы хотите использовать пустой заголовок, просто введите "" для них.

....
//for using multiple Html.ActionLink in a column using Webgrid
grid.Column("Action", format: (item) =>
 new HtmlString(
       Html.ActionLink("Show Details", "Edit", "Admin", new
       {
           applicantId = item.ApplicantID,               
           title = "Detail",
           @class = "icon-link",
           style = "background-image: url('../../Content/icons/detail.png')"
       }, null).ToString() +
       Html.ActionLink("Edit Record", "Edit", "Admin", new
       {
           applicantId = item.ApplicantID, 
           title = "Edit",
           @class = "icon-link",
           style = "background-image: url('../../Content/icons/edit.png')"
       }, null).ToString() +
       Html.ActionLink("Delete Record", "Edit", "Admin", new
       {
           applicantId = item.ApplicantID,
           title = "Delete",
           @class = "icon-link",
           style = "background-image: url('../../Content/icons/delete.png')"
       }, null).ToString()
 )
)
....


<style type="text/css">
    a.icon-link {
        background-color: transparent; 
        background-repeat: no-repeat; 
        background-position: 0px 0px;
        border: none;
        cursor: pointer; 
        width: 16px;
        height: 16px;
        margin-right: 8px; 
        vertical-align: middle;
    }
</style>

Для полного примера вы можете посмотреть здесь: Как использовать WebGrid в виде cshtml?

С уважением.

1 голос
/ 09 сентября 2010

Я создал помощника для этого решения.Так что вы не можете включить изображение в actionLink.Но с этим вспомогательным классом вы можете просто добавить привязку с изображением для просмотра.

с использованием системы;используя System.Text;использование System.Web.Mvc;использование System.Web.Mvc.Html;использование System.Web.Routing;использование System.Web;using System.Security.Policy;

namespace Helpers
{
    public static class ActionWithImageHelper
    {
        public static string AnchorIm(this HtmlHelper helper)
        {

            var builder = new TagBuilder("img");
            var link = helper.ActionLink("[replaceInnerHTML]", "replaceAction").ToHtmlString();


                builder.MergeAttribute("src", "<imagePath>");
                builder.MergeAttribute("alt", "<altText>");

                var renderedLink = link.Replace("replaceAction", "<>");
                link = renderedLink;


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

    }
}

удачи

0 голосов
/ 29 сентября 2015

Вместо использования @ Html.ActionLink ("linkname", "action", "controller") вы можете использовать следующее:

<a href='@Url.Action("action", "controller")'>

"images" - моя папкахранение изображений.@Url.Content() это знать путь.Вы можете передать свое действие и контроллер для этого действия на @Url.Action().@Url.Action() работает аналогично @Html.ActionLink().Теперь ваша ссылка будет заменена изображением.

...