Вот код моего контроллера, а также моего View:
@using (Html.BeginForm("Create", "Product", FormMethod.Post, new { enctype = "multipart/form-data" })) {
@Html.ValidationSummary()
<div class="form-field">
<p>@Html.LabelFor(m => m.Name)</p>
@Html.EditorFor(m => m.Name)
</div>
<div class="form-field">
<p>@Html.LabelFor(m => m.Description)</p>
@Html.EditorFor(m => m.Description)
</div>
<div class="form-field">
<p>@Html.LabelFor(m => m.UnitPrice)</p>
@Html.EditorFor(m => m.UnitPrice)
</div>
<div class="form-field">
<input type="file" name="image1" />
<input type="file" name="image2" />
<input type="file" name="image3" />
</div>
<div class="form-field">
<input type="submit" value="Create" />
</div>
}
И в контроллере. Не фокусируйтесь на содержимом метода действия, просто фокусируйтесь на параметре типа List
. Правильно ли это? В таком виде images
при отправке формы становится нулевым.
[HttpPost]
public ActionResult Create(ProductModel model, List<HttpPostedFileBase> images)
{
try
{
if (ModelState.IsValid)
{
var newProduct = Mapper.Map<ProductModel, Product>(model);
_productRepository.CreateProduct(newProduct);
_productRepository.SaveChanges();
}
return RedirectToAction("Index");
}
catch
{
return View(model);
}
}
Если бы вы могли привести очень простой пример, это было бы замечательно.