C# 动态更改HTML

C# 动态更改HTML,c#,html,C#,Html,我试图创建一个HTML页面,其中“主体”颜色根据从RAM收集的一些数据而变化。如果RAM的填充量超过某个阈值,那么我希望颜色改变 <body style="background-color:<%= if(MemoryPercentage < 33) { //set to green. } else if(MemoryPercentage < 66) { //set to yellow.

我试图创建一个HTML页面,其中“主体”颜色根据从RAM收集的一些数据而变化。如果RAM的填充量超过某个阈值,那么我希望颜色改变

    <body style="background-color:<%=
    if(MemoryPercentage < 33)
    {
        //set to green.
    }
    else if(MemoryPercentage < 66)
    {
        //set to yellow.
    }
    else
    {
            //set to red.
    }%>">

谢谢你的帮助

亚伦


虽然您可以使用body标记的sytle属性直接应用样式(如中所建议),但围绕HTML的一般最佳实践不鼓励这样做

您应该做的是将这些样式放置在页面上引用的样式表中,然后为类指定不同的名称


然后,在代码中,根据逻辑将具有所需样式的类应用于body元素的class属性。

我更喜欢使用CSS类并将逻辑分离出来,以便更具可读性

<style type="text/css">
.warn {
   background-color: #00ffff;
}
.error {
   background-color: #ff0000;
}
.ok {
   background-color: #00ff00;
}
</style>

<%
    var klass = MemoryPercentage < 33 : "ok" ? (MemoryPercentage < 66 ? "warn" : "error");
%>

<body class="<%= klass %>">

.警告{
背景色:#00ffff;
}
.错误{
背景色:#ff0000;
}
.好的{
背景色:#00ff00;
}

除了其他答案之外:


将使标签作为
HtmlGenericControl
可供
Page_Load()
&friends访问,因此您可以处理逻辑并设置
Body.CssClass
,而无需模板-y标记。使它不那么凌乱/更易于维护。

谢谢!我对这一切都不熟悉,这个答案对我来说并不明显。谢谢你的回答。我从上面的答案开始,但后来修改了我的代码以反映您额外的CSS提示。;)
<style type="text/css">
.warn {
   background-color: #00ffff;
}
.error {
   background-color: #ff0000;
}
.ok {
   background-color: #00ff00;
}
</style>

<%
    var klass = MemoryPercentage < 33 : "ok" ? (MemoryPercentage < 66 ? "warn" : "error");
%>

<body class="<%= klass %>">