Css 根据当前页面更改主体背景颜色
我正在开发一个基本的Razor Pages web应用程序,它有三个主要页面。我想能够改变身体的背景颜色,这取决于用户当前查看的剃须刀页面 正文包含在Css 根据当前页面更改主体背景颜色,css,asp.net-core,background-color,razor-pages,Css,Asp.net Core,Background Color,Razor Pages,我正在开发一个基本的Razor Pages web应用程序,它有三个主要页面。我想能够改变身体的背景颜色,这取决于用户当前查看的剃须刀页面 正文包含在\u Layout.cshtml文件中,我可以在其中更改整个应用程序的颜色: <body style="background-color: lightcoral "> 然而,在一天中这么晚的时候,我似乎不知道如何根据我当前所在的页面改变这种颜色。我最初的想法是使用JQuery获取body元素并更新backgro
\u Layout.cshtml
文件中,我可以在其中更改整个应用程序的颜色:
<body style="background-color: lightcoral ">
然而,在一天中这么晚的时候,我似乎不知道如何根据我当前所在的页面改变这种颜色。我最初的想法是使用JQuery获取body元素并更新background style属性,但我仍然不确定如何判断当前所在的页面以确定颜色。因此我想出了一个可行的方法,但是当我在页面之间导航时,背景仍然闪烁白色。我很想听听其他人的解决方案,可能会更好、更高效。。。甚至包括一些转换;) 我有三个区域,每个区域包含创建、编辑、详细信息、索引和删除页面。这些领域是季节、旅行、进入。因此,对于“季节”下的每个页面,我都添加了一个隐藏字段:
<input type="hidden" name="hdnPageSelector" id="hdnSeasonPage" />
正如我所提到的,这似乎是可行的,但我有兴趣听到一些更好的解决方案。您可以在代码中的
ViewData
中设置一个值,然后在布局页面中使用该值
<body style="background-color: @ViewData["BackgroundColor"]">
就我个人而言,我可能会使用一个类来驱动它
<body class=" @ViewData["BackgroundClass"]">
如果要为不同区域添加不同的背景颜色,可以使用当前区域名称添加主体id,并为不同id添加样式。以下是演示: _layout.cshtml:
@{
var routeUrl = this.Url.RouteUrl(ViewContext.RouteData.Values);
var area = routeUrl.Split("/")[1];
}
<body id="@area">
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageWithAreas</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="Entry" asp-page="/Create">Entry/Create</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="Session" asp-page="/Create">Session/Create</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="Trip" asp-page="/Create">Trip/Create</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
...
<style>
#Session {
background-color: #ffefef;
}
#Trip {
background-color: #fff8d7;
}
#Entry {
background-color: #eafff3;
}
</style>
</body>
@{
var routeUrl=this.Url.routeUrl(ViewContext.RouteData.Values);
var区域=路线分割(“/”[1];
}
结果:
<body style="background-color: @ViewData["BackgroundColor"]">
<body class=" @ViewData["BackgroundClass"]">
@{
var routeUrl = this.Url.RouteUrl(ViewContext.RouteData.Values);
var area = routeUrl.Split("/")[1];
}
<body id="@area">
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageWithAreas</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="Entry" asp-page="/Create">Entry/Create</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="Session" asp-page="/Create">Session/Create</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="Trip" asp-page="/Create">Trip/Create</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
...
<style>
#Session {
background-color: #ffefef;
}
#Trip {
background-color: #fff8d7;
}
#Entry {
background-color: #eafff3;
}
</style>
</body>