我有一个关于枚举的问题,基本上我已经创建了一个本地化的枚举下拉列表来正确显示带有本地化的枚举。
但是当我稍后想在另一个页面的某处显示选定的枚举时,我不再获得本地化。
任何想法,或者任何人都可以给我一个链接,指向一些用于显示枚举的 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/