簡體   English   中英

基於枚舉值的樣式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM