dynamic
От: Silver10  
Дата: 20.04.11 06:50
Оценка:
Добрый день, коллеги.

Перехожу на Framework 4 и не могу понять некоторых особенностей работы с dynamic

При выполнении следующего кода возникает ошибка: An expression tree may not contain a dynamic operation

@grid.GetHtml(
        columns: grid.Columns(
                    grid.Column(null, null, format: item =>
                    {
                        return Html.ActionLinkWithImage<ClientRecordController>(c => c.ClientRecordIndex(0, item.Id, null), "~/Content/Images/users.png", new { title = Resources.Details }, null, null);
                    }
                 )
        )


Здесь параметр format принимает делегат Func<dynamic, object>, а параметр функции ActionLinkWithImage<T> принимает Expression<Action<T>>

Если изменить код таким образом:

@grid.GetHtml(
        columns: grid.Columns(
                    grid.Column(null, null, format: item =>
                    {
                        int id = item.Id;
                        return Html.ActionLinkWithImage<ClientRecordController>(c => c.ClientRecordIndex(0, id, null), "~/Content/Images/users.png", new { title = Resources.Details }, null, null);
                    }
                 )
        )


то все работает. Почему?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.