2012-07-09 67 views
1

我将任务存储在数据库中。每个任务都可以解决或打开,所以我根据状态创建了一个包含truefalse的列isSolved根据数据库值更改行颜色

现在我想显示所有任务的列表,并将已解决任务的行的背景颜色设置为绿色,将未解决的任务设置为红色。但是我怎么能在.cshtml文件里面实现这个呢?

回答

6

可以使用@()做一个视图中的条件检查。

<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; 
} 
4

根据状态向每个元素添加一个类。假设你正在渲染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; 
}