0

我正在尝试使用 ASP.NET MVC 4 构建网站。我的项目带有一个 css 文件,该文件会影响我所有使用主布局 (_Layout.cshtml) 的视图。我希望能够根据视图使用三种不同背景颜色中的一种,我需要帮助。这是我到目前为止所拥有的:

/* main layout
----------------------------------------------------------*/

.content-wrapper {
    margin: 0 auto;
    max-width: 960px;
}

#body {
    background-color: #eb6f5c;
    clear: both;
    padding-bottom: 35px;
}

#body#Geldi {
    background-color: #a0f3ab;
    clear: both;
    padding-bottom: 35px;
}

#body#Login {
    background-color: #e8f3a0;
    clear: both;
    padding-bottom: 35px;
}


footer {
    clear: both;
    background-color: #e2e2e2;
    font-size: .8em;
    height: 100px;
}

研究并没有让我走得更远。我所有的页面仍然是粉红色(#eb6f5c)。如何告诉 Visual Studio 我想为特定视图使用“Geldi”主体类型或“登录”主体类型?

4

1 回答 1

2

首先,我认为您不能使用那个特定的 CSS 选择器(我认为它可以转换为选择 ID="body" 和 ID="Login"(或“Geldi”)的元素,但 CSS 不是我的强项)。如果您将它设置为页面的主体标签,请去掉#body并直接使用body,因为您可以通过 HTML 元素名称进行选择。所以改为:body#Loginbody#Geldi

之后,最好使用 ViewData,并将其设置在您的子视图(登录视图或其他内容)中,然后将其提供给您的主视图

例如:

_Layout.cshtml

<body id='@(ViewData["PageId"] ?? "")'>
    @RenderBody()
</body>

登录.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewData["PageId"] = "Login";
}

<div id='content'>
    <!-- All of your page content here and whatever -->
</div>
于 2012-07-31T01:53:57.817 回答