我有一个枚举如下:
enum ProgressStatus{
Approved,
Unapproved,
InProcess
}
我有一个使用此类的Project
对象。根据枚举值,我需要在造型时将其值显示为绿色,黄色或蓝色。
<ol class="breadcrumb">
@if (Model.ProgressStatus == ProgressStatus.Approved)
{
<li style="color:red;"><label>Vaziyet Planı</label></li>
}
</ol>
这就是我尝试这样做但却变得笨拙和笨拙。
完成这项工作的正确方法是什么?
答案 0 :(得分:2)
将此放在您的视图中:
@{
var labelColours = new Dictionary<ProgressStatus, string>()
{
{ ProgressStatus.Approved, "green" },
{ ProgressStatus.Unapproved, "yellow" },
{ ProgressStatus.InProcess, "blue" }
};
}
然后在你的标签中使用它:
<li style="color: @labelColours[Model.ProgressStatus];">
答案 1 :(得分:2)
使用您的枚举,您可以使用短开关来设置颜色:
@{
string color;
switch(Model.ProgressStatus)
{
case ProgressStatus.Approved : color = "green"; break;
case ProgressStatus.Unapproved : color = "yellow"; break;
//...
}
}
然后你只需要一个元素
<li style="color:@color;"><label>Vaziyet Planı</label></li>
这真的是对Stijn的回答的另一种看法。我更喜欢他。
答案 2 :(得分:0)
将此逻辑放入控制器并将其解析为绑定到视图的单个模型属性。
<li class='@Model.FinalStyle'><label>@Model.Text</label></li>