Я отправляю вам ссылку на предыдущий пост здесь.
Как вставить данные из ViewModel в базу данных с помощью раскрывающегося списка в View
Теперь проблема связана с передачей параметров изображения.
Я бынравится загружать фотографию в основную модель с помощью ViewModel для отправки данных в базу данных. Это не массовая передача файлов, только отдельные файлы в таблицу.
Оба параметра модели установлены на:
[Display(Name ="Photo")]
public byte[] Photo { get; set; }
Я пытался установить модели в соответствии с Microsoft ASP.NET Corev 2.2 документация
Моя попытка контроллера [HttpPost]:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(... , byte[] Photo, IFormFile Image)
{
ObjectABC abc = new ObjectABC ();
ObjectViewModel model = new ObjectViewModel ();
if (ModelState.IsValid)
{
if (... && Image != null)
{
...
abc.Photo = Photo;
_context.Add(abc);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
}
Photo = null;
using (var memoryStream = new MemoryStream())
{
Image.CopyTo(memoryStream);
Photo = memoryStream.ToArray();
}
...
model.Photo = Photo;
return View(model);
}
для контроллера [HttpGet] Я ничего не установил, я оставил его, как предлагалось в предыдущем решении. вид части:
...
<div class="form-gr">
<input type="file" asp-for="Photo" class="form-control" />
<label asp-for="Photo" class="control-label">Browse...</label>
<span asp-validation-for="Photo" class="text-danger"></span>
</div>
...
Все выглядит нормально, но программа говорит:
NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
...
+
Image.CopyTo(memoryStream);
Где он настроен неправильно, по какой причине у меня такой результат? Есть идеи?