我将任务存储在数据库中。每个任务都可以解决或打开,所以我根据状态创建了一个包含true
或false
的列isSolved
。根据数据库值更改行颜色
现在我想显示所有任务的列表,并将已解决任务的行的背景颜色设置为绿色,将未解决的任务设置为红色。但是我怎么能在.cshtml
文件里面实现这个呢?
我将任务存储在数据库中。每个任务都可以解决或打开,所以我根据状态创建了一个包含true
或false
的列isSolved
。根据数据库值更改行颜色
现在我想显示所有任务的列表,并将已解决任务的行的背景颜色设置为绿色,将未解决的任务设置为红色。但是我怎么能在.cshtml
文件里面实现这个呢?
可以使用@()
做一个视图中的条件检查。
<ul>
@foreach(var task in Model) // Model is your list of tasks
{
<li class="@(task.isSolved ? "solved" : "unsolved")">@task.Description</li>
}
<ul>
CSS
li.solved
{
color: green;
}
li.unsolved
{
color: red;
}
根据状态向每个元素添加一个类。假设你正在渲染TaskVM
列表是在主虚拟机(我用ul
标签,但它与其他任何标签的工作原理):
<ul>
@foreach(var task in Model.Tasks)
{
<li class="@task.Color" >text</li>
}
<ul>
你TaskVM.Color
物业会是这样的
public string Color
{
get { return isSolved ? "Green" : "Red"; }
}
和当然,你有一个CSS规则:
.Green {
background-color:#33CC00;
}
.Red {
background-color:#FF333;
}