我有一个带有几个局部视图的MVC视图。加载时,我想根据布尔属性的值更改每个局部视图的背景色。此布尔值是部分视图的视图模型的一部分。
我遇到的问题是尝试获取特定局部视图的dom元素的jquery选择器。
<div class="input-group-wrapper">
<div class="checkbox">
<label>
@Html.CheckBoxFor(m => m.IsActive, new {id = "activeChanged"} )
@Html.LabelFor(m => m.IsActive, "Active")
</label>
</div>
</div>
部分视图中的代码:
<script>
$(document).ready(function () {
setAddressActiveInactive(@Json.Encode(Model.IsActive));
});
</script>
设置背景颜色的功能:
function setAddressActiveInactive(isActive) {
if (!isActive) {
$("#activeChanged").closest(".input-group-wrapper").attr("style", "background-color: #D3D3D3 !important");
}else {
$("#activeChanged").closest(".input-group-wrapper").attr("style", "background-color: #f8f8f8 !important");
}
}
因此,基本上,在最初加载根视图时,如果局部视图的“ IsActive”属性为true,则将其设置为另一种颜色,反之亦然。
答案不是使用javascript来设置,而是使用剃刀语法基于IsActive的值来设置样式
@{
var style = !Model.IsActive ? "background-color:#D3D3D3 !Important" : "";
}