Asp.net mvc 如何使用HTML.ActionLink插入图像?

Asp.net mvc 如何使用HTML.ActionLink插入图像?,asp.net-mvc,image,html.actionlink,Asp.net Mvc,Image,Html.actionlink,如何在html.actionlink-asp.net mvc中插入图像 我是这样做的,但它不起作用 <a href="<%= Html.ActionLink("search", "Search", new { searchText = "txtSearch" }, null); %>"> <img alt="searchPage" style="vertical-align: middle;" height="17px" sr

如何在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" />


您完全滥用了
ActionLink
帮助程序。助手实际上生成了整个
标记

在这种情况下,您真正想要使用的(除了您自己的书面助手之外)是:


我已经为这个解决方案创建了一个助手。所以你不能把图片加入到actionLink中。但是有了这个助手类,u可以简单地添加带有图像的锚来查看

使用制度; 使用系统文本; 使用System.Web.Mvc; 使用System.Web.Mvc.Html; 使用System.Web.Routing; 使用System.Web; 使用系统、安全、策略

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));
        }

    }
}
名称空间帮助程序
{
公共静态类ActionWithImageHelper
{
公共静态字符串AnchorIm(此HtmlHelper帮助程序)
{
var builder=新标记生成器(“img”);
var link=helper.ActionLink(“[replaceInnerHTML],“replaceAction”).ToHtmlString();
builder.MergeAttribute(“src”和“”);
builder.MergeAttribute(“alt”和“”);
var renderdlink=link.Replace(“replaceAction”,即“”);
链接=渲染链接;
返回link.Replace(“[replaceInnerHTML]”,builder.ToString(TagRenderMode.SelfClosing));
}
}
}

祝你好运

@Trimack与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> 

如果要显示多个图像,可以在
视图中使用
Html.ActionLink
属性,如下所示。在这个示例中,我使用细节/编辑/删除图像作为“操作”列下的按钮

注意:根据您的项目在
Html.ActionLink
中键入
Title
Controller
Action
名称。如果要使用空标题,只需为其键入“”。

。。。。
//用于在使用Webgrid的列中使用多个Html.ActionLink
grid.Column(“操作”,格式:(项)=>
新HtmlString(
ActionLink(“显示详细信息”、“编辑”、“管理”),新建
{
AppliantId=项。AppliantId,
title=“详细信息”,
@class=“图标链接”,
style=“背景图像:url('../../Content/icons/detail.png')”
},null)。ToString()+
ActionLink(“编辑记录”,“编辑”,“管理”,新建
{
AppliantId=项。AppliantId,
title=“编辑”,
@class=“图标链接”,
style=“背景图像:url('../../Content/icons/edit.png')”
},null)。ToString()+
ActionLink(“删除记录”,“编辑”,“管理”,新建
{
AppliantId=项。AppliantId,
title=“删除”,
@class=“图标链接”,
style=“背景图像:url('../../Content/icons/delete.png')”
},null)。ToString()
)
)
....
a、 图标链接{
背景色:透明;
背景重复:无重复;
背景位置:0px 0px;
边界:无;
光标:指针;
宽度:16px;
高度:16px;
右边距:8px;
垂直对齐:中间对齐;
}
有关完整示例,您可以查看以下内容:


关于。

您可以使用以下命令代替@Html.ActionLink(“linkname”、“action”、“controller”):

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


“图像”是我用来存储图像的文件夹
@Url.Content()
就是要知道路径。您可以将操作和该操作的控制器传递给
@Url.action()
@Url.Action()
的工作原理类似于
@Html.ActionLink()
。现在,您的链接将被图像替换。

我强烈建议使用Url.Action()这是完整的代码
....
//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>
<a href='@Url.Action("action", "controller")'>