4

我有一个引用背景图像的 CSS 类:

#content-wrapper
{
    background: #f7f7f7 url('/Images/bg04.png');
    border-top: solid 1px #fff;
    padding: 45px 0 45px 0;
}

我已经将 MVC4 与 Razor 一起使用了一段时间,并且我已经习惯于使用它@Url.Content()来链接到图像、其他页面以及站点上可用的文档。

但是,看起来这个特定的帮助器(或任何真正的帮助器)在.cshtml页面之外可用。

我的问题

有没有办法“启用”在@Url.Content()样式表上使用?

4

3 回答 3

4

不容易,而且我还没有遇到需要它的情况,因为路径是相对于样式表的(不是页面,可能会改变)。虽然,而不是使用绝对路径,url('/Images/bg04.png')你应该使用相对 url,比如url('../Images/bg04.png')

因此,如果您将 CSS 存储在~/content其中并且图像在 中~/images,那么样式表中的所有路径都应以../images/

于 2013-08-22T17:30:08.097 回答
3

<head>'s <style type="text/css">我在 MVC5 Razor元素内部使用 @Url.Content() 没有问题:

背景: url('@Url.Content("~/Content/Images/logo-bg.jpg")') 无重复滚动 0 0;

于 2018-01-22T16:39:10.797 回答
0

我遇到了这个,它帮助了我

<head>
    <meta charset="utf-8" />
    <meta name="description" content="The content description" />
    <link rel="shortcut icon" href="@Url.Content("~/Content/images/favicon.ico")" />
    <title>@ViewBag.Title</title>
    @RenderSection("css", false)
</head>

然后在您的 Index.cshtml 中使用该部分添加您的 css 链接:

@section css {
    <link href="@Url.Content("~/css/style.css")" rel="stylesheet"/>
}

请注意,“css”是您的部分的唯一名称,它需要匹配。您还可以在所需的任何视图中使用此部分。然后,您在 css 部分中指定的部分将在 html 的 head-tag 中呈现,就在您将 RenderSection 占位符放在 _Layout.cshtml 中的位置。

于 2013-08-22T17:32:14.870 回答