从项值

时间:2017-11-25 10:11:15

标签: css twitter-bootstrap razor-pages

在cshtml页面中,我能够根据数据库值选择一个类。例如:

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

&#34;状态&#34;是我的表的枚举定义如下:

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

上面的Razor语法将根据项值在我的警报中添加一个类。好!

但现在我需要&#34;翻译&#34;这个班级是Bootstrap的一个。例如:

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

我可以使用Razor手动完成此操作,但我想知道在css中是否可以直接使用它,例如(metacode):

.Ready {
    return alert-primary
}

.Pause, .Disconnect {
    return alert-secondary
}

1 个答案:

答案 0 :(得分:1)

您可以声明一个包含类名的字符串数组:

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

现在,您可以使用以下行显示等效的类名

@ClassList[(int)item.State]

我没有测试它,但它应该可以工作。