Html.ActionLink("", "ActionResult", new { CustomerId= DataBinder.Eval(c.DataItem, "CustomerId") }, new { target = "_blank", @style = "background-image:url(/Image/edit.png); width:50px; height:30px;" }));
您好,
我尝试为actionlink设置图片,但它始终为空。
如何将图像设置为html.actionlink?
我希望actionlink看起来像图像(图像按钮)
注意:请不要向我提供 a href 等。
非常感谢任何帮助。
感谢。
答案 0 :(得分:1)
如评论中所述,当您未提供任何文字时,您的图片不会显示,因为您的元素设置为inline
。如果没有文本,则无论元素的样式中指定的任何width
或height
属性如何,您的元素都没有大小。要解决此问题,请将元素设置为inline-block
:
(Html.ActionLink(
"",
"ActionResult",
new {
CustomerId= DataBinder.Eval(c.DataItem, "CustomerId")
},
new {
target = "_blank",
@style = "
background-image:url(/Image/edit.png);
display:inline-block;
width:50px;
height:30px;
"
})
);
答案 1 :(得分:0)
我正在网上找到一个手工制作的Html Helper,这里是:
/// <summary>
/// Html helper that displays an image.
/// </summary>
/// <param name="_helper"></param>
/// <param name="_url"></param>
/// <param name="_altText"></param>
/// <param name="_clickMethod"></param>
/// <param name="_htmlAttributes"></param>
/// <returns></returns>
public static MvcHtmlString ImageClick(this HtmlHelper _helper, string _id, string _url, string _altText, string _clickMethod, object _htmlAttributes)
{
TagBuilder builder = new TagBuilder("image");
var path = _url.Split('?');
string pathExtra = "";
if (path.Length > 1)
{
pathExtra += "?" + path[1];
}
builder.Attributes.Add("src", VirtualPathUtility.ToAbsolute(path[0]) + pathExtra);
builder.Attributes.Add("alt", _altText);
if (!String.IsNullOrEmpty(_clickMethod))
{
builder.Attributes.Add("onclick", _clickMethod + "()");
}
builder.GenerateId(_id);
builder.MergeAttributes(new RouteValueDictionary(_htmlAttributes));
return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing));
}
希望这会有所帮助!