Witam. Mam akcję, która wstawia nowy produkt do bazy a razem z nim uploaduje zdjęcia. W widoku mam 5 inputów dla zdjęć i gdy dodam wszystkie 5 jest ok, produkt się tworzy a zdjęcia dodają. Problem jest, gdy skorzystam tylko np. z 3 inputów a 2 zostawie puste. Wyskakuje błąd w linijce 13:
System.NullReferenceException: 'Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.'
[HttpPost]
[Authorize(Roles = "Admin")]
public ActionResult AddProduct(EditProductViewModel model,IEnumerable<HttpPostedFileBase> file)
{
// Sprawdzenie, czy użytkownik wybrał plik
if (file != null)
{
if (ModelState.IsValid)
{
int i = 1;
foreach (var item in file)
{
var itemExt = Path.GetExtension(item.FileName);
var jpgitemname = Path.ChangeExtension(itemExt, ".jpg");
var itemname = model.Product.ProductTitle + '_'+ i + jpgitemname;
var imagespath = Path.Combine(Server.MapPath(AppConfig.ProductsImagesRelativeFolder), model.Product.ProductTitle, itemname);
item.SaveAs(imagespath);
i++;
}
model.Product.ImagesName = model.Product.ProductTitle;
model.Product.AddedDate = DateTime.Now;
db.Entry(model.Product).State = EntityState.Added;
db.SaveChanges();
return RedirectToAction("AddProduct", new { confirmation = true });
}
Widok
<tr><td>Zdjecie 1 (Miniatura)</td><td><input type="file" name="file" required /></td></tr>
<tr><td>Zdjecie 2</td><td><input type="file" name="file" /></td></tr>
<tr><td>Zdjecie 3</td><td><input type="file" name="file" /></td></tr>
<tr><td>Zdjecie 4</td><td><input type="file" name="file" /></td></tr>
<tr><td>Zdjecie 5</td><td><input type="file" name="file" /></td></tr>
Chcę aby użytkownik mógł wstawić dowolną liczbę zdjęć z zakresu 0-5.
W jaki sposób mogę ustawić dowolną liczbę przychodzących plików w parametrze funkcji ?