加载时更新单个局部视图

时间:2018-08-29 22:01:50

标签: jquery asp.net-mvc

我有一个带有几个局部视图的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" : "";
}    

0 个答案:

没有答案