_Layout.cshtmlファイルに.cssファイルを設定する方法はわかっていますが、ビューごとにスタイルシートを適用することについてはどうでしょうか。
私の考えているのは、_Layout.cshtmlには、使用する<head>
タグがありますが、レイアウト以外のビューにはそうではないということです。 <link>
タグはどこにありますか?
サイト全体で再利用される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"セクションが定義されていない限りエラーがスローされます。
私はそのようにブロックを追加しようとしました:
@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
を追加しなかったときにビューが崩壊することはありません。
を使う
@Scripts.Render("~/scripts/myScript.js")
または
@Styles.Render("~/styles/myStylesheet.css")
あなたのために働くことができます。
レイアウトはマスターページと同じように機能します。レイアウトに含まれるすべてのCSS参照、すべての子ページに含まれます。
私はClient Dependency dllからのrazor htmlヘルパーの使用を好む
Html.RequireCss("yourfile", 9999); // 9999 is loading priority
あなたはLayout.cshtmlファイルでこの構造をすることができます
<link href="~/YourCssFolder/YourCssStyle.css" rel="stylesheet" type="text/css" />