Позвольте мне предварить это, говоря, что я довольно новичок в ASP.NET MVC. Я решил использовать расширения Telerik ASP.NET MVC http://www.telerik.com/products/aspnet-mvc.aspx
Я бы хотел услышать от вас рекомендацию, как справиться со следующей ситуацией.
У меня есть класс модели POCO с именем Print.
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);
Как видите, в сетке будет использоваться свойство Status, которое является перечислением. Однако это приводит к вопросу о том, как его локализовать, т. Е. Как показать различные переводы свойства Status.
Моя мысль состоит в том, чтобы наследовать от класса Print и разрешить дополнительное строковое свойство, которое будет содержать перевод и позволяет создавать класс Print из него в фоновом режиме (я слышал, что библиотека Automapper может быть полезна в этом). Это, однако, кажется уродливым решением для меня.
Спасибо за ваш вклад.