在Razor视图中使用switch-case语句选择类

时间:2019-07-19 11:27:40

标签: css razor model-view-controller

我想根据WhichColor属性的值更改类名。如果为1,则应为红色;如果为2,则应为蓝色,依此类推。我知道如何使用:?语句对两种颜色执行此操作。但是,如果我还有更多呢?

我尝试使用switch case进行操作,但是它不允许我返回字符串,我可能不了解在这种情况下switch case是如何工作的。

<td class="@{
        switch (item.WhichColor)
        {
            case 1:
                return "red";
            case 2:
                return "blue";
            case 3:
                return "green";
            default:
                break;
        }
            } ">
        @Html.DisplayFor(modelItem => item.WhichColor)
    </td>

我希望它像上面的开关盒一样工作,但是不允许我返回字符串。我该如何实现?

1 个答案:

答案 0 :(得分:0)

好吧,我已经设法通过合并的临时声明来做到这一点:

<td class="@(
        (item.WhichColor == 1) ? "green" : (item.WhichColor == 2) ? "yellow" : (item.WhichColor == 3) ? "red" : (item.WhichColor == 4) ? "blue" : (item.WhichColor == 5 ? "gray" : "")
            )">
        @Html.DisplayFor(modelItem => item.WhichColor)
    </td>