c# - MVC 如何以显示形式正确显示本地化枚举?

标签 c# asp.net-mvc localization enums

我有一个关于枚举的问题,基本上我已经创建了一个本地化的枚举下拉列表来正确显示带有本地化的枚举。

但是当我稍后想在另一个页面的某处显示选定的枚举时,我不再获得本地化。

任何想法,或者任何人都可以给我一个链接,指向一些用于显示枚举的 html 扩展。

我有以下内容:

public enum Gender
{
        [Display(ResourceType = typeof(Resources.Base), Name = "Male")]
        M= 0,
        [Display(ResourceType = typeof(Resources.Base), Name = "Female")]
        F= 1,
}

在我看来,我有以下几点:

@Html.LabelForModel(Model.Gender.ToString())

在我设置的 Controller 中:

Model.Gender = Gender.M

我没有从基地显示男性,而是显示“M”。

知道如何解决这个问题吗?

最佳答案

最后我自己解决了我的问题,我创建了一个自定义 html 帮助程序来正确显示“显示”注释。

    public static MvcHtmlString DisplayEnum(this HtmlHelper helper, Enum e)
    {
        string result = string.Empty;

        var display = e.GetType()
                   .GetMember(e.ToString()).First()
                   .GetCustomAttributes(false)
                   .OfType<DisplayAttribute>()
                   .LastOrDefault();

        if (display != null)
        {
            result = display.GetName();
        }

        return helper.Label(result);
    }

关于c# - MVC 如何以显示形式正确显示本地化枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20923515/

相关文章:

c# - Wpf 鼠标事件超出用户控件问题的范围

c# - 我的网页 MVC 5 中的土耳其语问题

c# - 代码找不到塞尔维亚语资源

Laravel 翻译 json HTTP 响应消息

c# - 创建镜像并将 ASP.NET Core .NET 5 Docker 镜像部署到 ARM

c# - 如何使用 jquery 和 c# 将数据库中的数据显示到 html 表中

c# - 从 C# WPF 中的另一个类访问控件的属性

c# - 如何在 asp.net MVC 中获取最后保存的(不是最近保存的)行的 ID?

asp.net - 默认模型绑定(bind)器不绑定(bind)我的模型类

Java 字符串转unicode