2017-11-25 71 views
0

在cshtml页面中,我可以选择一个具有数据库值功能的类。例如:从项目值中选择一个css类

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

“国家”定义如下表我的枚举:

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

剃刀语法上面会一类的项目价值的功能添加到我的警觉。好!

但是现在我需要将这个类“翻译”为Bootstrap的一个。例如:

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

我能够将它与剃刀手动,但我不知道是否有直接的CSS是一种方便的方法来此,像(元代码):

.Ready { 
    return alert-primary 
} 

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

你好,你使用预处理器,如sass或更少? – Kangouroops

+0

目前,我没有。 – Mark

+0

随着sass你可以延长课程。它的工作原理就像OOP继承 –

回答

1

你可以声明字符串数组将包含的类名称:

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

现在你可以使用下面的行

显示等价类名
@ClassList[(int)item.State] 

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

+0

这确实是一个可行的解决方案,虽然在我通常被描述为“用剃刀手动执行”的组中。 – Mark