[英]Style based on Enum value
我有一個枚舉如下:
enum ProgressStatus{
Approved,
Unapproved,
InProcess
}
我有一個使用此類的Project
對象。 基於枚舉值,我需要在樣式設置時將它們的值顯示為綠色,黃色或藍色。
<ol class="breadcrumb">
@if (Model.ProgressStatus == ProgressStatus.Approved)
{
<li style="color:red;"><label>Vaziyet Planı</label></li>
}
</ol>
這就是我嘗試這樣做的方法,但是它變得笨拙而笨拙。
完成這項工作的正確方法是什么?
將此視為您的觀點:
@{
var labelColours = new Dictionary<ProgressStatus, string>()
{
{ ProgressStatus.Approved, "green" },
{ ProgressStatus.Unapproved, "yellow" },
{ ProgressStatus.InProcess, "blue" }
};
}
然后在標簽中使用:
<li style="color: @labelColours[Model.ProgressStatus];">
對於您的枚舉,可以使用一個短開關來設置顏色:
@{
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答案的不同看法。 我喜歡他更好。
將此邏輯放在控制器中,並將其解析為綁定到視圖的單個模型屬性。
<li class='@Model.FinalStyle'><label>@Model.Text</label></li>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.