【问题标题】:Asp.Net MVC Razor, combining global and local *.cssAsp.Net MVC Razor,结合全局和本地 *.css
【发布时间】:2016-04-18 19:18:06
【问题描述】:

我通过@Url.Content(path_to_css_file) 获得了在我的“布局”中引用的“global.css”。然后我希望我的一些观点包含他们自己的 *.css。实现这一目标的正确方法是什么?我已经尝试了<style></style> 每个视图,但这似乎与最佳解决方案相去甚远,不是吗?

【问题讨论】:

  • 在您的页面中添加一个 head 标签并将您的样式表插入其中。
  • 您收到答复了吗?

标签: css asp.net-mvc razor


【解决方案1】:

我建议你使用 ViewBag 除了你的布局页面添加你的视图。

添加如下内容:

@if (ViewBag.LayoutStyle != null)
{
    <link href="@ViewBag.LayoutStyle" rel="stylesheet"/>
}

在 global.css 之后的布局文件以及要在全局样式之后添加第二个 css 文件的视图中,只需将 ViewBag.LayoutStyle 值设置为 css 文件的 URL。

这样您将有机会使用全局 css 文件,并根据您正在加载的视图加载不同的 css 文件,并根据您的视图覆盖全局 css。

【讨论】:

    【解决方案2】:

    最好的方法是使用包来引用样式和脚本。 所以在 App_Start 文件夹中的 BundleConfig 类中添加:

    bundles.Add(new StyleBundle("~/Content/myglobalcss").Include(
    "~/Content/global.css"
    ));
    
    bundles.Add(new StyleBundle("~/Content/mylocalcss").Include(
    "~/Content/local.css"
    ));
    

    然后在你的 _Layout.cshtml &lt;head&gt; 标签中写下这一行:

    @Styles.Render("~/Content/myglobalcss")
    

    例如在您的 Index.cshtml 视图中添加这一行

    @Styles.Render("~/Content/mylocalcss")
    

    这将在您的索引视图中专门呈现 local.css。实际上,您可以在每个捆绑包中引用多个 *.css 文件并在需要时使用它们。

    【讨论】:

      猜你喜欢
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多