【发布时间】:2017-07-23 19:30:27
【问题描述】:
我目前正在本地化一个开源项目,但我遇到了 Enums 问题。
这是我的 Enums.cs(不是整个文件,只是问题出现的一部分)。
public enum ModeratorLevel
{
[Display(Name = "Sahip")]
Owner = 1,
[Display(Name = "Moderatör")]
Moderator = 2,
[Display(Name = "Temizlikçi")]
Janitor = 3,
[Display(Name = "Boyacı")]
Designer = 4,
[Display(Name = "Paylaşımcı")]
Submitter = 99
}
这是我的视图(同样,不是整个文件,只包含我要修复的代码)
@{
string subverseName = ViewBag.SubverseName;
var levelsAvailable = Enum.GetValues(typeof(ModeratorLevel)).OfType<ModeratorLevel>();
var currentLevel = ModeratorPermission.Level(User.Identity.Name, subverseName);
levelsAvailable = levelsAvailable.Where(x => x > currentLevel || currentLevel == ModeratorLevel.Owner);
}
@* these areas contain other codes is not related to my issue *@
<div class="form-group">
@Html.Label("foo", htmlAttributes: new {@class = "control-label col-md-2"})
<div class="col-md-4">
@Html.DropDownListFor(model => model.Power, levelsAvailable.Select(x => new SelectListItem() { Text = x.ToString(), Value = ((int)x).ToString() }), new { @class = "form-control"} )
@Html.ValidationMessageFor(model => model.Power, "", new {@class = "text-danger"})
</div>
</div>
@* these areas contain other codes is not related to my issue *@
这是输出; dropdownlist
现在,我想要什么? 我想显示 DisplayNames 而不是 Enum 值。 出口看起来像:
- foo = 所有者
- 版主
- 看门人
- 设计师
- 提交者
但我想展示它的样子:
- foo = Sahip
- 主持人
- Temizlikçi
- 博亚茨
- Paylaşımcı
但在这种变化中,变化必须只是视觉上的。我们不应该更改任何影响 Enum 功能的代码。我只想显示 DisplayNames 而不是 Enum 值。
谢谢。
【问题讨论】:
标签: c# asp.net asp.net-mvc enums