Html.ActionLink的Css图像

时间:2013-10-30 15:23:06

标签: css image html.actionlink

 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 等。

非常感谢任何帮助。

感谢。

2 个答案:

答案 0 :(得分:1)

如评论中所述,当您未提供任何文字时,您的图片不会显示,因为您的元素设置为inline。如果没有文本,则无论元素的样式中指定的任何widthheight属性如何,您的元素都没有大小。要解决此问题,请将元素设置为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));
}

希望这会有所帮助!