带有翻译值的DropDown列表

时间:2012-03-06 12:35:22

标签: model-view-controller

我的域名中有这样的枚举

public enum AdTypeEnum { Sale = 1, Rent = 2, SaleOrRent = 3 };

在我看来,我正在渲染这样的枚举

<div class="editor-field">
   @Html.DropDownListFor(x => x.AdType, new SelectList(Enum.GetValues(typeof(MyDomain.Domain.Property.AdTypeEnum))))
</div>

现在,我想要实现的目标是基于所选语言我希望以所选语言在下拉列表中显示这些枚举。

1 个答案:

答案 0 :(得分:1)

您尝试过类似的事情吗?

public static Array Localize(Array values)
{
 string[] result = new string[values.Length];
 for (int i = 0; i < values.Length; ++i)
  result[i] = Resources.ResourceManager.GetString(values.GetValue(i).ToString());

 return result;
}

更好的实现应该为每个枚举类型使用不同的键集(使用枚举名称作为GetString()参数的一部分)。 无论如何,这种方法非常天真,我认为对于大型应用程序(或更复杂的场景),您可能需要从SelectList类继承。