【问题标题】:Styles not applied in view without it's master layout - ASP MVC没有主布局的视图中不应用样式 - ASP MVC
【发布时间】:2011-12-02 23:17:15
【问题描述】:

我有一个剃须刀主布局_Master.cshtml,其中包含Master.css。 我还有一个Home.cshtml_Master.cshtml 是它的布局。 在家里我有一个视图Event.cshtml - 这个视图没有任何母版页设置。

@{
    Layout = null;
}
<style>
    .boxStyle{...}
</style>
<div class="boxStyle">
    ...
</div>

这行得通。但我想将.boxStyle 移动到Master.css 当我把它移到那里时,它就不再起作用了。 但是如果我将下面的代码添加到_Master.cshtml 然后就可以了。但我需要它在 css 文件中。

<style>
    .boxStyle{...}
</style>

我在这里做错了什么?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    如果您将 css 从 Event.cshtml 移动到 Master.css,您必须像这样在 Event.cshtml 中放置一个链接标签。

    <link rel="stylesheet" type="text/css" href="/css/Master.css">
    

    当然你还需要在 Event.cshtml 中添加基本的 html 标签

    <HTML>
      <HEAD>
        <link rel="stylesheet" type="text/css" href="/css/Master.css">
      </HEAD>
      <BODY>
    
      ..
    
      </BODY>
    </HTML>
    

    【讨论】:

    • 那么没有别的办法了吗?因为这个“事件”只是页面上的一个框。比如linkedIn上的“你可能认识的人”框。
    • 如果此页面单独呈现,您必须为其提供基本的 html 结构。如果此页面在另一个页面中呈现(例如通过 ajax 在 div 中加载),您可以省略此结构并仅输出内容。
    【解决方案2】:

    您确定您的 Event.cshtml 文件没有主布局吗?如果它在它自己的文件夹中,您可以将 _ViewStart.cshtml 文件添加到该文件夹​​并添加

    @{
        Layout = "~/Views/SomeFolder/_Master.cshtml";
    }
    

    到这个文件。 (SomeFolder 是 Event.cshtml 所在的文件夹)然后您可以在其中添加一个新的主布局 _Master.cshtml:

    <HTML>
      <HEAD>
        <link rel="stylesheet" type="text/css" href="/css/Master.css">
      </HEAD>
      <BODY>
        @RenderBody()
      </BODY>
    </HTML>
    

    【讨论】:

      猜你喜欢
      • 2020-06-19
      • 2011-06-30
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多