Я должен отображать изображения в сетке динамически. Для этого я использовал специальные 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>)
Я получаю эту ошибку: [
]
'HtmlHelper>' не имеет подходящего метода с именем 'ViewDPByID', но появляетсяиметь метод расширения с этим именем. Методы расширения не могут быть динамически отправлены. Попробуйте привести динамические аргументы или вызвать метод расширения без синтаксиса метода расширения.