Вам понадобится другое отдельное действие контроллера, которое проверяет хранилище данных и возвращает ContentResult
, которое будет либо true
, либо false
(или какой-либо другой строкой, которую вы хотите указать, имеет ли идентификатор байты или нет), и тогда в представлении вам понадобится это:
if(@Html.Action("action", "controller").ToString().Equals("true", StringComparison.OrdinalIgnoreCase)){
// render image tag with the call to the other action that returns FileResult
}
Другой вариант заключается в том, что у вас есть модель представления, которая содержит ссылку на байты изображения. Таким образом, вы подготавливаете модель для представления (родительскую модель) в контроллере и вытягиваете туда байты для изображения, тогда в представлении у вас будет:
if(Model.ImageBytes.Length() > 0) {
... do something
}
с ImageBytes
свойством типа byte[]
Например, это фрагмент из одного из моих просмотров:
@model pending.Models.Section
@if (Model != null && Model.Image != null && Model.Image.ImageBytes.Count() > 0)
{
<a href="@Model.Url" rel="@Model.Rel">
<img title="@Model.Title" alt="@Model.Title" src="@Url.Action(MVC.Section.Actions.Image(Model.Id))" /></a>
}
НТН