MvcContrib Grid - ошибка привязки к динамическим значениям в словаре - PullRequest
0 голосов
/ 14 марта 2012

У меня есть коллекция объектов SearchResult, которые содержат словарь с любым количеством динамических атрибутов, таких как имя, адрес, предпочтение в еде или что-либо еще.Я хочу динамически создавать столбцы (на основе коллекции Columns) и отображать атрибуты в сетке MvcContrib.

@Html.Grid(Model.SearchResults).Columns(column =>
{
    foreach (var col in Model.Columns)
    {
        column.For(sr => sr.GetAttribute(col.Name)).Named(col.Title);
    }
})

У меня проблема в том, что каждая строка в сетке полностью заполнена толькопоследний атрибут, как таковой:

Name           Address       Telephone
____________________________________________
01496 555555   01496 555555  01496 555555 
01496 444444   01496 444444  01496 444444
01496 111111   01496 111111  01496 111111 

Что я делаю не так ???

1 Ответ

1 голос
/ 14 марта 2012

Чтобы ответить на мой собственный вопрос ...

Это была проблема «доступа к измененному закрытию». Переменная столбца должна быть назначена локальной переменной в цикле foreach, например:

@Html.Grid(Model.SearchResults).Columns(column =>
{
    foreach (var col in Model.Columns)
    {
        var localCol = col;
        column.For(sr => sr.GetAttribute(localCol.Name)).Named(localCol.Title);
    }
})
...