Здравствуйте, я хочу загружать картинки drag-and-drop, но у меня возникла ошибка "CS0029 C# Не удается неявно преобразовать тип "Microsoft.AspNetCore.Http.IFormFile" в "byte[]"."
@page
@model MyWebSIte.Pages.Company.CreateModel
@{
ViewData["Title"] = "Create";
}
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
<link rel="stylesheet" href="/css/create.css">
<div class="container-fluid">
<div class="container">
<div class="row">
<div class="col">
<h1>@Localizer["Создание"]</h1>
<h4>@Localizer["Компании"]</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Company.Title" class="control-label"></label>
<input asp-for="Company.Title" class="form-control" placeholder=@Localizer["Название"] />
<span asp-validation-for="Company.Title" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Company.ReleaseDate" class="control-label"></label>
<input asp-for="Company.ReleaseDate" class="form-control" />
<span asp-validation-for="Company.ReleaseDate" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Company.Rating" class="control-label"></label>
<input asp-for="Company.Rating" class="form-control" placeholder=@Localizer["Рейтинг"] />
<span asp-validation-for="Company.Rating" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Company.Bonus" class="control-label"></label>
<input asp-for="Company.Bonus" class="form-control" placeholder=@Localizer["Бонус"] />
<span asp-validation-for="Company.Bonus" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Company.Description" class="control-label"></label>
<input asp-for="Company.Description" class="form-control" placeholder=@Localizer["Описание"] />
<span asp-validation-for="Company.Description" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Company.Thematics" class="control-label"></label>
<input asp-for="Company.Thematics" class="form-control" placeholder=@Localizer["Тематика"] />
<span asp-validation-for="Company.Thematics" class="text-danger"></span>
</div>
<div class="form-group">//загрузка изображений
<div id="dropZone">
Для загрузки, перетащите файл сюда.
</div>
</div>
<div class="form-group">
<label asp-for="Company.Video" class="control-label"></label>
<input asp-for="Company.Video" class="form-control" placeholder=@Localizer["Видео"] />
<span asp-validation-for="Company.Video" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Company.Topic" class="control-label"></label>
<input asp-for="Company.Topic" class="form-control" placeholder=@Localizer["Тема"] />
<span asp-validation-for="Company.Topic" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Company.News" class="control-label"></label>
<input asp-for="Company.News" class="form-control" placeholder=@Localizer["Новости"] />
<span asp-validation-for="Company.News" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Company.Price" class="control-label"></label>
<input asp-for="Company.Price" class="form-control" placeholder=@Localizer["Цена"] />
<span asp-validation-for="Company.Price" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Company.Tags" class="control-label"></label>
<input asp-for="Company.Tags" class="form-control" placeholder=@Localizer["Тэги"] />
<span asp-validation-for="Company.Tags" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>
<div>
<a asp-page="Index">@Localizer["Вернуться к списку"]</a>
</div>
</div>
</div>
</div>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
using Microsoft.AspNetCore.Http;
namespace MyWebSIte.Models
{
public class CompanyViewModel
{
public IFormFile Images { get; set; }
}
}
using Microsoft.AspNetCore.Mvc;
using MyWebSIte.Data;
using MyWebSIte.Models;
using System.IO;
using System.Linq;
namespace MyWebSIte.Pages
{
public class HomeController : Controller
{
ApplicationDbContext _context;
public HomeController(ApplicationDbContext context)
{
_context = context;
}
public IActionResult Index()
{
return View(_context.Company.ToList());
}
[HttpPost]
public IActionResult Create(CompanyViewModel pvm)
{
Models.Company company = new Models.Company { Images = pvm.Images };// здесь возникает ошибка
if (pvm.Images != null)
{
byte[] imageData = null;
// считываем переданный файл в массив байтов
using (var binaryReader = new BinaryReader(pvm.Images.OpenReadStream()))
{
imageData = binaryReader.ReadBytes((int)pvm.Images.Length);
}
// установка массива байтов
company.Images = imageData;
}
_context.Company.Add(company);
_context.SaveChanges();
return RedirectToAction("Index");
}
}
}
Как мне исправить эту ошибку?
Заранее спасибо