Asp.net mvc 如何使用HTML.ActionLink插入图像?
如何在html.actionlink-asp.net mvc中插入图像 我是这样做的,但它不起作用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
<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")'>