2017-11-25 36 views
0

cshtmlページでは、データベース値の関数としてクラスを選択できます。例:項目値からCSSクラスを選択

<div class="alert @item.State" role="alert">@item.State</div> 

「国家」、次のように定義された私のテーブルの列挙です:

public enum States 
{ 
    Ready, 
    Setup, 
    Pause, 
    Error, 
    Maintenance, 
    Emergency, 
    Disconnected 
} 

上記カミソリの構文は項目値の関数に私の警告にクラスを追加します。良い!

今はこのクラスをブートストラップのものに "翻訳"する必要があります。例:

Ready: alert-primary 
Pause or Disconnected: alert-secondary 
Error: alert-danger 
etc... 

私は手動カミソリでこれにことができるよ、私は便利な方法は、(メタコード)のようなものは、直接CSSでこれにありますかしら:

.Ready { 
    return alert-primary 
} 

.Pause, .Disconnect { 
    return alert-secondary 
} 
+0

こんにちは、サスペス以下のプリプロセッサを使用しますか? – Kangouroops

+0

現在、私はしません。 – Mark

+0

あなたはクラスを拡張することができます。これはOOPの継承と同じように動作します –

答えて

1

あなたは宣言することができますクラス名が含まれています文字列の配列:

string[] ClassList = new string[] 
{ 
    "ReadyClass", "SetupClass", "PauseClass", "ErrorClass", "MaintenanceClass", "EmergencyClass", "DisconnectedClass" 
}; 

今、あなたは

次の行を使用して、同等のクラス名を表示することができます
@ClassList[(int)item.State] 

私はテストしませんでしたが、うまくいくはずです。

+0

これは実際には実用的な解決策ですが、私は一般的に「手でRazorで行う」というグループにあります。 – Mark

関連する問題