ASP.NET Core 8 MVC: загрузка изображения завершается с ошибкой «Требуется поле изображения», несмотря на то, что файл выC#

Место общения программистов C#
Ответить
Anonymous
 ASP.NET Core 8 MVC: загрузка изображения завершается с ошибкой «Требуется поле изображения», несмотря на то, что файл вы

Сообщение Anonymous »

Я разрабатываю приложение ASP.NET Core 8.0 MVC для интернет-магазина. Я создал форму для добавления новых продуктов, которая включает функцию загрузки изображений. Однако я столкнулся с проблемой, из-за которой при отправке формы возникает ошибка.

Поле изображения является обязательным

даже если я выбрал файл изображения для загрузки.
Вот соответствующие подробности:
Действие контроллера ():

Код: Выделить всё

[HttpPost]
public async Task Create(Products product, IFormFile image)
{
if (ModelState.IsValid)
{
if (image != null)
{
var name = Path.Combine(_he.WebRootPath + "/images", Path.GetFileName(image.FileName));
await image.CopyToAsync(new FileStream(name, FileMode.Create));
product.Image = "images/" + image.FileName;
}

_db.Products.Add(product);
await _db.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}

return View(product);
}
Соответствующая часть представления:

Код: Выделить всё

Add New Product




// ... Other field








// ... Other field


Back to List




@section Scripts {
@{
await Html.RenderPartialAsync("_ValidationScriptsPartial.cshtml");
}
}

Код: Выделить всё

Products
класс модели:

Код: Выделить всё

public class Products
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public decimal Price { get; set; }
public string Image { get; set; }
[Display(Name = "Product Color")]
public string ProductColor { get; set; }

[Required]
[Display(Name = "Available")]
public bool IsAvailable { get; set; }

[Display(Name = "Product Type")]
[Required]
public int ProductTypeId { get; set; }

[ForeignKey("ProductTypeId")]
public ProductTypes ProductTypes { get; set; }

[Display(Name = "Special Tag")]
[Required]
public int SpecialTagId { get; set; }

[ForeignKey("SpecialTagId")]
public SpecialTag SpecialTag { get; set; }
}
Когда я заполняю форму и выбираю файл изображения, после отправки форма не добавляет продукт в базу данных. Вместо этого под полем ввода файла отображается ошибка «Поле изображения необходимо».
Я подтвердил:
  • Файл выбирается в поле ввода перед отправкой.
  • Другие обязательные поля заполняются правильно.
  • Действие контроллера выполняется, когда форма отправлена.
Я не понимаю, почему не удается загрузить изображение или почему возникает ошибка проверки, несмотря на выбранный файл. Мы будем очень признательны за любую помощь в выявлении причины этой проблемы или предложения по ее решению.

Подробнее здесь: https://stackoverflow.com/questions/788 ... ired-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»