Формат ASP.NET MVC3 WebGrid: параметр

Я пытаюсь использовать новую WebGrid в ASP.NET MVC3 и один из столбцов, в котором я хочу отображать набор значков ссылок, которые выполняют различные действия (Edit, View, Delete) ... Для этой цели у меня есть расширения HtmlHelper, которые в основном выводят следующий HTML:


Расширение возвращает MvcHtmlString, и оно отлично работает при использовании в представлениях Razor само по себе… Например: @ Html.ActionLinkIconForEditAction ("Клиент", 2)

Проблема в том, что мне нужно вызывать этот помощник (один раз для каждого действия) в столбце WebGrid, передавая идентификатор объекта. Проблема, с которой я зашел в тупик, заключается в том, что компилятор выдает мне ошибку, говоря, что он не может преобразовать MvcHtmlString (или «лямбда-выражение» в зависимости от вызова, который я пытаюсь сделать) в System.Func, ожидаемый форматом ...

Так, например, это работает:

grid.Column(header: "", format: @@Html.ActionLinkIconForEditAction("Customer", 2))

Но это не так:

grid.Column(header: "", format: (customer) => @@Html.ActionLinkIconForEditAction("Customer", customer.Id))
grid.Column(header: "", format: (customer) => Html.ActionLinkIconForEditAction("Customer", customer.Id))

Я получаю:

Error 4 Argument 3: cannot convert from 'lambda expression' to 'System.Func'

или для этого вызова:

grid.Column(header: "", format: Html.ActionLinkIconForEditAction("Customer", customer.Id)),

Я получаю:

Error 5 Argument 3: cannot convert from 'System.Web.Mvc.MvcHtmlString' to 'System.Func'

Что странно, у меня есть другие столбцы, которые используют лямбда-выражения, прямые методы доступа Model.Property , и даже вывод из String.Format ("") ... Все они работают нормально ... Я прочитал все документы на Func и в этой ветке , но до сих пор не могу понять это :)

Может ли кто-нибудь заметить, что я делаю неправильно?

12
задан Community 23 May 2017 в 12:31
поделиться