实际上我有一个母版页,我将这个母版页添加到另一个视图(Index.cshtml),现在我想在Index.cshtml视图中添加另一个单独的css文件。
答案 0 :(得分:24)
在母版页的head部分(例如_Layout.cshtml)中添加一个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中一样。
答案 1 :(得分:1)
糟糕的做法但你可以只在视图的顶部添加一个html链接标记或脚本标记,现代浏览器仍会渲染它。它并不总是需要位于母版页的头部
答案 2 :(得分:0)
您可以使用Razor sections或字符串集合并将其存储在ViewBag.CSS中,稍后在布局上呈现它,或者如果您不熟悉剃刀,则可以使用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);
}