Как использовать пользовательские методы HTML Helper в сетке MVC - PullRequest
0 голосов
/ 10 октября 2019

Я должен отображать изображения в сетке динамически. Для этого я использовал специальные HTML-помощники, и они отлично работают за пределами веб-сетки, но я не знаю, как использовать ее внутри сетки. Я использую следующий сценарий:

public static class CustomHtmlHelpers
    {
      public static IHtmlString ViewDPByID(this HtmlHelper helper, string src, string alt, string cssclass)
            {
                TagBuilder tb = new TagBuilder("img");

                if (File.Exists("~/Assets/images/EmpDB/" + src + ".png"))
                    tb.Attributes.Add("src", VirtualPathUtility.ToAbsolute("~/Assets/images/EmpDB/" + src + ".png"));
                else
                    tb.Attributes.Add("src", VirtualPathUtility.ToAbsolute("~/Assets/images/angular.jpg"));

                tb.Attributes.Add("alt", alt);
                tb.Attributes.Add("class", cssclass);
                return new MvcHtmlString(tb.ToString(TagRenderMode.SelfClosing));
            }
}





 @webGrid.Table(
    htmlAttributes: new { @id = "WebGrid", @class = "table align-items-center table-flush table-hover table-sm" },
    headerStyle: "thead-light",
    columns: webGrid.Columns(
             //RowID
             webGrid.Column(header: "EmployeeID",
             format: @<span class="label">@Html.ViewDPByID(item.EmployeeID,"employee image", "avatar rounded-circle avatar-sm mr-3")</span>, style: "EmployeeID")),
                 footer: @<table class="footer">
            <tr>
            </tr>
        </table>)

Я получаю эту ошибку: [enter image description here]

'HtmlHelper>' не имеет подходящего метода с именем 'ViewDPByID', но появляетсяиметь метод расширения с этим именем. Методы расширения не могут быть динамически отправлены. Попробуйте привести динамические аргументы или вызвать метод расширения без синтаксиса метода расширения.

1 Ответ

0 голосов
/ 10 октября 2019

динамические типы в методах расширения не поддерживаются. это должно работать

format: @<span class="label">@Html.ViewDPByID(((int)item.EmployeeID,"employee image", "avatar rounded-circle avatar-sm mr-3")</span>, style: "EmployeeID")),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...