web-dev-qa-db-ja.com

かみそりビューで.cssファイルを参照するには?

_Layout.cshtmlファイルに.cssファイルを設定する方法はわかっていますが、ビューごとにスタイルシートを適用することについてはどうでしょうか。

私の考えているのは、_Layout.cshtmlには、使用する<head>タグがありますが、レイアウト以外のビューにはそうではないということです。 <link>タグはどこにありますか?

168
MrBoJangles

サイト全体で再利用されるCSSについては、<head>_Layoutセクションで定義します。

<head>
    <link href="@Url.Content("~/Styles/main.css")" rel="stylesheet" type="text/css" />
    @RenderSection("Styles", false)
</head>

また、ビュー固有のスタイルが必要な場合は、各ビューでStylesセクションを定義します。

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

編集:@RenderSectionの2番目のパラメータ、falseは、このマスターページを使用するビューにセクションが必要ないことを意味し、ビューエンジンは定義された "Styles"セクションがないという事実を無視します。あなたの見解では。 trueの場合、ビューはレンダリングされず、 "Styles"セクションが定義されていない限りエラーがスローされます。

295
Darin Dimitrov

私はそのようにブロックを追加しようとしました:

@section styles{
    <link rel="Stylesheet" href="@Href("~/Content/MyStyles.css")" />
}

そして_Layout.cshtmlファイル内の対応するブロック:

<head>
<title>@ViewBag.Title</title>
@RenderSection("styles", false);
</head>

どれがうまくいきますか!しかし私は助けることができませんがよりよい方法があると思います。更新:@RenderSectionステートメントに "false"を追加したので、headと呼ばれる@sectionを追加しなかったときにビューが崩壊することはありません。

19
MrBoJangles

を使う

@Scripts.Render("~/scripts/myScript.js")

または

@Styles.Render("~/styles/myStylesheet.css")

あなたのために働くことができます。

https://stackoverflow.com/a/36157950/2924015

10
Nishanth Shaan

レイアウトはマスターページと同じように機能します。レイアウトに含まれるすべてのCSS参照、すべての子ページに含まれます。

Scott Guがここで素晴らしい説明をしています

3
BentOnCoding

私はClient Dependency dllからのrazor htmlヘルパーの使用を好む

Html.RequireCss("yourfile", 9999); // 9999 is loading priority 
1
john blair

あなたはLayout.cshtmlファイルでこの構造をすることができます

<link href="~/YourCssFolder/YourCssStyle.css" rel="stylesheet" type="text/css" />
0
mofidul