实际上我有一个母版页,我正在将此母版页添加到另一个视图(Index.cshtml)中,现在我想将另一个单独的 css 文件添加到 Index.cshtml 视图中。
问问题
23772 次
3 回答
25
在您的母版页(例如 _Layout.cshtml)的 head 部分中添加一个 RenderSection 调用。您的标题部分可能如下所示:
<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 中的位置。
于 2012-09-19T11:03:55.940 回答
1
不好的做法,但你可以在视图顶部添加一个 html 链接标签或脚本标签,现代浏览器仍然会呈现它。它并不总是需要在母版页的头部
于 2012-09-19T14:41:42.027 回答
0
您可以使用 Razor部分或字符串集合并将其存储在 ViewBag.CSS 中,然后在布局上呈现它,或者如果您不精通 razor,您可以使用 javascript
var $ = document; // shortcut
var cssId = 'myCss'; // you could encode the css path itself to generate id..
if (!$.getElementById(cssId))
{
var head = $.getElementsByTagName('head')[0];
var link = $.createElement('link');
link.id = cssId;
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'http://website.com/css/stylesheet.css';
link.media = 'all';
head.appendChild(link);
}
于 2012-09-19T10:48:13.803 回答