让我先说一下我是ASP.NET MVC的新手。我决定使用Telerik的ASP.NET MVC扩展http://www.telerik.com/products/aspnet-mvc.aspx
我想听听您如何处理以下情况的建议。
我有一个名为Print的模型POCO类。
public class Print
{
public int Id { get; set; }
public DateTime Date { get; set; }
public PrintStatus Status { get; set; }
}
我正在传递此类对象的集合以便在Grid上显示它。 该视图如下所示:
...
@{
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);
正如您所看到的,网格将使用Status属性,这是一个枚举。然而,这导致了如何本地化它的问题,即如何显示Status属性的不同翻译。
我的想法是从Print类继承并允许其他字符串属性来保存转换,并且在后台从中创建Print类(我听说Automapper库可能对此有帮助)。然而,这对我来说似乎是一个丑陋的解决方案。
感谢您的投入。
答案 0 :(得分:1)
创建ResourceManager的实例,并使用打印状态作为资源文件的查找键。或者,如果要在数据库中进行本地化,请对数据库执行相同的操作。如果您需要更具体的密钥,请添加某种类型的前缀。
此链接可能有所帮助: