如何基于MODEL值为元素设置条件样式以切换背景色?
基于Model值设置元素条件样式的正确写法
你的代码写法有误,Razor语法中不能将三元表达式拆分开来写,正确的做法是把整个样式相关的取值用Razor表达式包裹计算。
方法一:内联条件样式
直接在style属性中使用三元表达式,用@()包裹确保服务器端正确解析:
<div class="col-6" style="background-color: @(Model.QuestionAnswers[i].answers[j].answerSelected ? "green" : "darkorange")"> <!-- 元素内容 --> </div>
这里的@()会执行括号内的逻辑判断,根据answerSelected的布尔值返回对应的颜色字符串,最终渲染出正确的HTML样式属性。
方法二:使用CSS类(更推荐)
把样式定义到CSS类中,再根据条件添加对应的类名,这样更符合样式与结构分离的原则,也便于后续样式维护:
/* 先在样式文件中定义类 */ .bg-green { background-color: green; } .bg-darkorange { background-color: darkorange; }
然后在Razor视图中动态添加类:
<div class="col-6 @(Model.QuestionAnswers[i].answers[j].answerSelected ? "bg-green" : "bg-darkorange")"> <!-- 元素内容 --> </div>
内容的提问来源于stack exchange,提问作者Mark C
相关产品推荐
相关产品推荐

