6

実際にはマスター ページがあり、このマスター ページを別のビュー (Index.cshtml) に追加しています。今度は別の個別の css ファイルを Index.cshtml ビューに追加したいと考えています。

4

3 に答える 3

25

マスター ページのヘッド セクション (_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 セクション内で指定した部分は、_Layout.cshtml で RenderSection プレースホルダーを配置した場所の html のヘッドタグ内でレンダリングされます。

于 2012-09-19T11:03:55.940 に答える
1

悪い習慣ですが、HTML リンク タグまたはスクリプト タグをビューの上部に追加するだけで、最新のブラウザーはこれをレンダリングします。必ずしもマスター ページの先頭にある必要はありません。

于 2012-09-19T14:41:42.027 に答える
0

Razorセクションまたは文字列コレクションを使用して 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);
}
于 2012-09-19T10:48:13.803 に答える