How to reference a .css file on a razor view?
我知道如何在layout.cshtml文件上设置.css文件,但是在每个视图的基础上应用样式表呢?
我在这里的想法是,在layout.cshtml中,您可以使用
对于在整个站点中重用的CSS,我在
1 2 3 4 | <head> <link href="@Url.Content("~/Styles/main.css")" rel="stylesheet" type="text/css" /> @RenderSection("Styles", false) </head> |
如果我需要一些视图特定的样式,我在每个视图中定义
1 2 3 | @section Styles { <link href="@Url.Content("~/Styles/view_specific_style.css")" rel="stylesheet" type="text/css" /> } |
编辑:知道@rendersection中的第二个参数false很有用,这意味着在使用此母版页的视图上不需要该节,视图引擎会很高兴地忽略在视图中没有定义"样式"节这一事实。如果为true,则视图将不会呈现,除非定义了"样式"部分,否则将引发错误。
我尝试添加这样的块:
1 2 3 | @section styles{ <link rel="Stylesheet" href="@Href("~/Content/MyStyles.css")" /> } |
以及u layout.cshtml文件中的相应块:
1 2 3 4 | <head> @ViewBag.Title @RenderSection("styles", false); </head> |
有效!但我忍不住觉得有更好的办法。更新:在
使用
1 | @Scripts.Render("~/scripts/myScript.js") |
或
1 | @Styles.Render("~/styles/myStylesheet.css") |
可以为你工作。
https://stackoverflow.com/a/36157950/2924015
布局的工作方式与母版页相同。任何布局具有的CSS引用,任何子页都将具有。
顾司各特有一个很好的解释
我更喜欢使用来自客户端依赖dll的Razor HTML帮助程序
1 | Html.RequireCss("yourfile", 9999); // 9999 is loading priority |
您可以在layout.cshtml文件中使用此结构
1 | <link href="~/YourCssFolder/YourCssStyle.css" rel="stylesheet" type="text/css" /> |