gpt4 book ai didi

c# - 使用 MVC 根据枚举值定义 HTML 元素颜色

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:28 25 4
gpt4 key购买 nike

我的 MVC 元素中有一个问题类别枚举:

public enum QuestionCategory
{
[Display(Name = "Enum_Category_Overall_Display", ResourceType = typeof(ResQuestion))]
Overall = 0,
[Display(Name = "Enum_Category_Service_Display", ResourceType = typeof(ResQuestion))]
Service = 1,
[Display(Name = "Enum_Category_Facilities_Display", ResourceType = typeof(ResQuestion))]
Facilities = 2,
[Display(Name = "Enum_Category_Team_Display", ResourceType = typeof(ResQuestion))]
Team = 3
}

我需要根据枚举的值在 View 中设置图表颜色。

现在我在 View 中做一个切换:

string color = "";
switch (answer.QuestionCategory)
{
case Core.Data.Models.QuestionCategory.Overall: color = "#10c469"; break;
case Core.Data.Models.QuestionCategory.Service: color = "#f9c851"; break;
case Core.Data.Models.QuestionCategory.Facilities: color = "#188ae2"; break;
case Core.Data.Models.QuestionCategory.Team: color = "#5b69bc"; break;
}

然后我在图表中应用颜色:

<round-progress max="5" current="@answer.Numeric" color="@color" semi="isSemi" rounded="rounded" clockwise="clockwise" responsive="responsive"></round-progress>

问题是我需要基于另一个 View 中枚举值的颜色,我不想重复代码(DRY)。

最佳答案

您可以像 mxmissle 在他的回答中提到的那样创建一个 html 助手。另一种选择是在枚举上创建扩展方法。

public static class QuestionCategoryExtensions
{
public static string ToColor(this QuestionCategory category)
{
switch (category)
{
case QuestionCategory.Overall: return "#10c469";
case QuestionCategory.Service: return "#f9c851";
case QuestionCategory.Facilities: return "#188ae2";
case QuestionCategory.Team: return "#5b69bc";
}
return string.Empty;
}
}
}

在您看来,您可以简单地在模型的枚举属性上调用它。

假设您的 View 模型有一个名为 Catenter code hereegory of type QuestionCategory enum

你可以这样做

@Model.Category.ToColor()

此扩展方法可用于 View 和 Controller 代码。

关于c# - 使用 MVC 根据枚举值定义 HTML 元素颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38722156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com