2011-04-22 25 views
1

讓我通過說我對ASP.NET MVC相當新手來說明這一點。我決定使用Telerik的ASP.NET MVC擴展http://www.telerik.com/products/aspnet-mvc.aspx如何在asp.net mvc中處理POCO枚舉的本地化 - 最佳做法

我想聽取您的建議如何處理以下情況。

我有一個名爲Print的模型POCO類。

public class Print 
{ 
    public int Id { get; set; } 
    public DateTime Date { get; set; } 
    public PrintStatus Status { get; set; } 

} 

我傳遞了這個類的對象的集合來查看,以便在網格上顯示它。 視圖如下所示:

... 
@{ 
    var grid = Html.Telerik().Grid(Model) 
     .Name("Grid") 
     .DataKeys(keys => 
     { 
      keys.Add(o => o.Id); 
     }) 
        .Columns(columns => 
     { 
       columns.Bound(o => o.Date).Title(ModRes.Print.Date); 
       columns.Bound(o => o.Status)).Title(ModRes.Print.Status); 
           }) 
     .DataBinding(dataBinding => 
     { 
      dataBinding.Server().Select("Index", "Print") 
      .Insert("Insert", "Print") 
      .Update("Save", "Print") 
      .Delete("Delete", "Print"); 
     }) 
     .Sortable() 
     .Pageable() 
     .Filterable() 
     .Groupable() 
     .Footer(true); 

} 
@grid 
... 

相關線路是這樣的:

columns.Bound(o => o.Status)).Title(ModRes.Print.Status); 

正如你可以看到網格要使用狀態屬性,它是一個枚舉。然而,這導致如何本地化它的問題,即如何顯示狀態屬性的不同翻譯。

我的想法是從Print類繼承,並允許額外的字符串屬性,這將持有tranlation和alow創建後臺打印類(我聽說Automapper庫可能對此有幫助)。然而,這對我來說似乎是一個難看的解決方案。

謝謝您的輸入。

回答

1

創建ResourceManager的實例並將打印狀態用作資源文件的查找鍵。或者,如果您在數據庫中進行本地化,則對數據庫執行相同的操作。如果你需要它是一個關鍵的更具體的,然後添加某種類型的前綴。

此鏈接可能幫助:

http://msdn.microsoft.com/en-us/library/c6zyy3s9.aspx

+0

驅動器通過下調投票。尼斯。 – Quesi 2012-07-24 16:26:37