У меня есть рабочий метод для преобразования файла (image.jpeg) в byte [], а затем поместить массив в мою БД. Но поле допускает NULL, и в этом случае у меня есть исключение NullArgument с преобразованием null в изображение с использованием Convert.ToBase64String (item.Image). Что я должен сделать, чтобы избежать исключения и просто просматривать другие данные без изображения?
public async Task<IActionResult> Create(PhonesView pv)
{
byte[] imageData = null;
Phone phone = new Phone { Name = pv.Name, Company = pv.Company, Price = pv.Price};
if (pv.Image != null)
{
using (var binaryReader = new System.IO.BinaryReader(pv.Image.OpenReadStream()))
{
imageData = binaryReader.ReadBytes((int)pv.Image.Length);
}
phone.Image = imageData;
}
/* else
{
}*/
db.Add(phone);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
Индекс одновременно:
@foreach (var item in Model)
{
<tr>
<td>
@Html.Raw("<img style='width:80px; height:60px;' src=\"data:image/jpeg;base64,"
+ Convert.ToBase64String(item.Image) + "\" />")
</td>
<td>@item.Name</td>
<td>@item.Company</td>
<td>@item.Price</td>
<td>
<a asp-action="Delete" asp-controller="Home" asp-route-id="@item.Id">Delete</a>
<a asp-action="Edit" asp-controller="Home" asp-route-id="@item.Id">Edit</a>
</td>
</tr>
}