2012-03-06 56 views
0

我有我的域名枚举这样与翻译值

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

你尝试类似:

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类继承。