如何在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" />
答案 0 :(得分:14)
您完全滥用了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>
答案 1 :(得分:12)
@Trimack与MVC2 100%正确。如果人们正在搜索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>
答案 2 :(得分:1)
我为这个解决方案创建了一个帮手。所以你不能将图像包含在actionLink中。但是使用这个辅助类,你可以简单地添加带图像的锚点来查看。
使用System; 使用System.Text; 使用System.Web.Mvc; 使用System.Web.Mvc.Html; 使用System.Web.Routing; 使用System.Web; 使用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));
}
}
}
祝你好运
答案 3 :(得分:1)
如果您想要显示多张图片,可以在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>
完整示例,您可以在此处查看:How to use WebGrid in a cshtml view?
问候。
答案 4 :(得分:0)
您可以使用以下内容,而不是使用@ Html.ActionLink(&#34; linkname&#34;,&#34;操作&#34;,&#34;控制器&#34;)而不是:
@Url.Content()
&#34;图像&#34;是我存储图像的文件夹。 @Url.Action()
是了解路径。您可以将操作和该操作的控制器传递给@Url.Action()
。 @Html.ActionLink()
与.nav li {
display: inline;
}
的工作方式类似。现在您的链接将被图像替换。