9

我正在尝试为 ASP.NET MVC4 Web 应用程序替换 _Layout.cshtml 中臭名昭著的“您的徽标”。以下作品(显示图像中的作品)适用于主页(主页视图),但不适用于联系人视图(无图像,但操作有效)。我需要它在开发环境和生产环境中工作。

< p class="site-title">@Html.ActionLink(" ", "Index", "Home", new
  {
  style = "background: url('./Images/login_sm.bmp') no-repeat center right;
          display:block; height:84px; width:264px;"
  })
</ p>
4

5 回答 5

30

图像总是相对于当前 CSS 的位置。

如果你使用内联 CSS,你应该使用 url helpers:

@Html.ActionLink(
    " ", 
    "Index", 
    "Home", 
    null , 
    new { 
        style = "background: url('" + Url.Content("~/images/login_sm.bmp") + "') no-repeat center right; display:block; height:84px; width:264px;" 
    }
)

或者如果您决定定义一个 CSS 类:

@Html.ActionLink(
    " ", 
    "Index", 
    "Home",  
    null , 
    new { 
        @class = "mylink" 
    }
)

您在以下位置定义了.mylink规则~/content/Site.css

.mylink {
    background: url('../images/login_sm.bmp') no-repeat center right; 
    display: block; 
    height: 84px; 
    width: 264px;
}
于 2012-10-19T15:34:26.700 回答
12

您可以执行以下操作的最佳方法

@Html.Raw(@Html.ActionLink("[replacetext]", "Index", "Home").ToHtmlString().Replace("[replacetext]", "<img src=\"/assets/img/logo.png\" ... />"))

完美的工作

于 2013-10-17T11:13:44.470 回答
4

你可以用这个

<a href='@Url.Action("action", "Controller")'>
<img src='@Url.Content("~/images/imageName.png")' /></a>

这工作正常,它的工作原理类似于@Html.ActionLink("linkName","action","Controller")

于 2015-09-29T07:13:46.497 回答
1

我稍微编辑了 Dilip0165 解决方案

@Html.Raw(@Html.ActionLink("[replacetext]", "Index", "Home").ToHtmlString().Replace("[replacetext]", "<img src=\"" + @Url.Content("~/Content/assets/img/logo.png") + "\" alt=\"Link description\" title=\"Link description\" />"))

如果您希望它没有默认边框,请将其添加到您的 css

img {border: 0px;}
于 2015-01-23T11:39:37.397 回答
0

我发现当需要高级别的<a>标签定制(例如锚内的其他标签)时,最好自己做。

我使用 UrlHelper.GenerateUrl 方法生成 URL,然后我手动创建<a>标签并使用生成的 URL。

于 2016-09-23T15:27:16.297 回答