C# 从代码隐藏变量更改css类-如何避免?

C# 从代码隐藏变量更改css类-如何避免?,c#,asp.net,html,css,C#,Asp.net,Html,Css,我需要根据代码隐藏中设置的某些count属性更改div的背景。我可以让它工作如下。但我想知道这是否是一个好的做法。如果我需要更改计数逻辑,我必须更新代码vs html。我想Jquery不能做到这一点,除非我在页面上有一个带有count的隐藏变量。这比在html中编写If循环逻辑好吗 html <div class="show <%=CSSClass %>"> value </div> 类名是一种非常有效的方法,在服务器上执行此操作的技术也是如此。类名是一种

我需要根据代码隐藏中设置的某些count属性更改div的背景。我可以让它工作如下。但我想知道这是否是一个好的做法。如果我需要更改计数逻辑,我必须更新代码vs html。我想Jquery不能做到这一点,除非我在页面上有一个带有count的隐藏变量。这比在html中编写If循环逻辑好吗

html

<div class="show <%=CSSClass %>">  value </div>

类名是一种非常有效的方法,在服务器上执行此操作的技术也是如此。

类名是一种非常有效的方法,在服务器上执行此操作的技术也是如此。

这是一种很好的做法。我会坚持下去。如果希望使用jQuery执行此操作,可以向客户端公开
count
服务器端属性,并在客户端上执行相同的逻辑。但是请注意,由于这是在客户端完成的,因此在页面呈现和jQuery代码分配了正确的类名之后可能会有一些延迟,因此当实际的CSS类应用于客户端的DOM元素时,您可能会看到闪烁。

这是一个很好的做法。我会坚持下去。如果希望使用jQuery执行此操作,可以向客户端公开
count
服务器端属性,并在客户端上执行相同的逻辑。但是请注意,由于这是在客户机上完成的,因此在呈现页面并且jQuery代码分配了正确的类名之后,可能会有一些延迟,因此,当实际的CSS类应用于客户端的DOM元素时,您可能会看到闪烁。如果您试图使用MVC方法,则不需要这样做

MVC中的要点是确保在您的视图中没有业务逻辑,而且由于这不是那种类型的逻辑,它似乎很复杂,我会在页面中添加
if


当然,除非你打算大量使用这种方法,否则这可能不是一个坏主意。

如果你试图使用MVC方法,就没有必要这样做

MVC中的要点是确保在您的视图中没有业务逻辑,而且由于这不是那种类型的逻辑,它似乎很复杂,我会在页面中添加
if


除非你想经常使用这个,否则这可能不是个坏主意。

旁白:这是一个结构奇怪的
if-else if
。您真的打算将
“dim”
映射到
count==1 | | count<0
?如果count>1,则返回bright;如果计数=0,则返回正常值;否则(如果计数小于1),返回dim。我之前没有==,我更新了它。如果
计数==1怎么办?您当前的代码返回
“dim”
。是的,我同意。这只是为了说明目的。在这种情况下,第一个条件应该是if(count>=1)。您真的打算将
“dim”
映射到
count==1 | | count<0
?如果count>1,则返回bright;如果计数=0,则返回正常值;否则(如果计数小于1),返回dim。我之前没有==,我更新了它。如果
计数==1怎么办?您当前的代码返回
“dim”
。是的,我同意。这只是为了说明目的。在这种情况下,第一个条件应该是if(count>=1)。但是这样,如果必须更改count条件或css类名,我需要做一个发布。这是可以避免的吗?@Alex J,你要发布是什么意思?我不明白你的问题。您只需在javascript中输出count变量:
var count=。因此,如果您更改服务器上的计数值,javascript计数变量显然也会更新。对不起,这不是我的意思。我的意思是,如果计算css类的逻辑/条件发生变化,我将需要更新代码,而不是更新aspx html。如果必须将其嵌入aspx中以进行动态更改,则可以使用
条件运算符显著缩短它:
,但这样,如果必须更改计数条件或css类名,我需要做一个发布。这是可以避免的吗?@Alex J,你要发布是什么意思?我不明白你的问题。您只需在javascript中输出count变量:
var count=。因此,如果您更改服务器上的计数值,javascript计数变量显然也会更新。对不起,这不是我的意思。我的意思是,如果计算css类的逻辑/条件发生变化,我将需要更新代码,而不是更新aspx html。如果必须将其嵌入aspx中以进行动态更改,则可以使用
条件运算符显著缩短它:
public string CSSClass
            {
                get
                {
                    if (count > 1) return "bright";

                    else if (count == 0)
                        return "normal";

                    return "dim";
                }
            }