MVC如何正确显示显示形式的本地化枚举?

Aln*_*dru 1 c# asp.net-mvc enums localization

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

但是当我想在另一页的某个地方显示所选的枚举时,我不再进行本地化了.

任何想法,或许任何人都可以给我一个链接到一些html扩展名来显示枚举.

我有以下内容:

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

在我看来,我有以下内容:

@Html.LabelForModel(Model.Gender.ToString())
Run Code Online (Sandbox Code Playgroud)

在我设置的控制器中:

Model.Gender = Gender.M
Run Code Online (Sandbox Code Playgroud)

而不是从基地显示男性,我显示"M".

不知道怎么解决这个问题?

Aln*_*dru 7

最后我自己解决了我的问题,我已经创建了一个自定义的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);
    }
Run Code Online (Sandbox Code Playgroud)