JQuery/CSS - <body> 基于值的不同背景图像,无需加载_Layout页面上的 document.ready() 中



我有一个被多个部门使用的C#MVC Web应用程序。我决定从沉重的东西中休息一下,找一些更轻松的东西。当用户访问网站时,我会检查我们的数据库以获取他们的信息,其中一个是我存储在Session["DeptId"]变量中的部门ID。

我能够使背景图像基于该会话["DeptId"]值而改变_Layout.cs.html"$(document(.ready((函数中的页面,该函数导致在页面出现后稍微加载背景,导致每次加载页面时都会闪烁。当然,如果我只是将正文中的背景设置为css页面中的单个图像,这种闪烁就不会发生。有没有办法在文件准备好之前让它发挥作用,以避免轻微的延迟?

_Layout.cshtml JQuery:

$(document).ready(function () {
if (@Convert.ToInt32(Session["DeptId"]) == 3) {
$('body').addClass("husky");
}
else {
$('body').addClass("stopLight");
}
});

CSS类:

.stopLight {
background-image: url("Images/StopLightBackground.jpg");
background-size: 100%;
}
.husky {
background-image: url("Images/HuskyBackground.jpg");
background-size: 100%;
}

是的,当然你可以直接在_Layout.cshtml的body标签中这样做,比如:

<body class="@(Session["DeptId"] == "3" ? "husky" : "stopLight")">
</body>

最新更新