1
 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 看起来像图像(图像按钮)

注意:请不要给我一个 href等。

任何帮助将不胜感激。

谢谢。

4

2 回答 2

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;
        "
    })
);
于 2013-10-30T16:04:27.870 回答
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));
}

希望这会有所帮助!

于 2013-10-30T15:39:05.993 回答