有没有办法使用模型中的字段值来动态设置样式属性?

Is there a way to use a field's value in the Model to set a style attribute dynamically?

我创建了一个 CSHTML 电子邮件模板文件,用于在特定事件即将结束时发送警报(即在结束前 10 分钟发送警报,然后在结束前 5 分钟发送警报,等等。 ).我想用颜色突出显示事件的类型(因为可以有多个)以区分消息。我目前拥有的是:

<strong style="color: {event color}">@alert.event</strong> is scheduled to end: <strong>@endEasternTime

我希望能够根据 @alert.event 中的值设置 {事件颜色},但我不确定我能做到。我试图在文件中创建一个脚本,但我不确定如何将其 return 值放入样式标签中:

<script>
    // Get the root element
    var r = document.querySelector(':root');

    // Create a function for getting a variable value
    function getEventColor(event) {
        // Get the styles (properties and values) for the root
        var rs = getComputedStyle(r);

        // Get the color associated with the event (default is the border color)
        return (event === "event1"
            ? rs.getPropertyValue('--evt1Color')
            : (event === "event2"
                ? rs.getPropertyValue('--evt2Color')
                : (event === "event3"
                    ? rs.getPropertyValue('--evt3Color')
                    : rs.getPropertyValue('--bdrColor')
                    )
                )
            );
    }
</script>

请注意,我在文件中创建了 HTML 变量,以将颜色与文件中的其他样式相匹配(例如 border-color)——因为space 注意事项和清晰度,我不打算在这里展示。

有办法吗?如果不使用上面的内联CSS,我可以更新一个classid 使用类似 script 上面的方法,如果是这样,最好的方法是什么。感谢您的帮助。

你可以使用 if..else..

@if (@alert.event == value1) 
{     
     <strong class="color1">
}
else if (@alert.event == value2)
{     
    <strong class="color2"> 
}
else {
    <strong class="colorn">
}

或者更简单的方法是根据您的活动命名 classes 并使用 CSS 添加颜色。

<strong class="event @alert.event">

标签有 2 个 classes(事件和生成的值)

假设 @alert.event = "test",然后将 CSS 添加到 class,如下所示。

.event.test {
    color: <color code>
}