В параметре grid.Column
метода *1001* вы собираете лямбда-выражение, чтобы вы могли, конечно, использовать if
.Но проблема в том, что вы не можете использовать @
, когда находитесь в «режиме кода» в Razor для вывода HTML.Поэтому вам нужно обернуть создание тега изображения в HtmlHelper (например, встроенный Html.ActionLink
, существует множество примеров ) или использовать метод HTML.Raw для возврата HTML:
@grid.GetHtml(
displayHeader: false,
columns: grid.Columns(
grid.Column(format: (item) =>
{
if (item.IsMainPreview == true)
{
return Html.Raw(string.Format("<text><img src=\"{0}\" alt=\"Image\"/></text>", Url.Content("~/Content/images/preview-photo.gif")));
}
else
{
return Html.Raw(string.Format("<text><img src=\"{0}\" alt=\"Image\"/></text>", Url.Content("~/Content/images/non-preview-photo.gif")));
}
}
),
grid.Column(format: (item) => Html.ActionLink("Remove Photo", "RemovePhoto", "Images", new { photoID = item.Id }, new { @class = "RemovePhoto" }))
));
Также в последней строке вместо new { photoID = @item.Id }
вы должны написать new { photoID = item.Id }
Чтобы узнать больше о бритве, вот подробное руководство .