2012-03-06 109 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類繼承。