Это мой контроллер
[HttpPost] public ActionResult Create([Bind] Employee emp, HttpPostedFileBase Photo) { try { if (Photo.ContentLength > 0) { string _ImageName = Path.GetFileName(Photo.FileName); string _path = Path.Combine(Server.MapPath("~/Upload/" + _ImageName), _ImageName); Photo.SaveAs(Server.MapPath(_path)); objemployee.AddEmployee(emp); ViewBag.Message = "Image Uploaded Successfully!!"; return View(); } else if (ModelState.IsValid) { objemployee.AddEmployee(emp); return RedirectToAction("Index"); } return View(emp); } catch { objemployee.AddEmployee(emp); //return Json(new { msg = "1" }, JsonRequestBehavior.AllowGet); return View(); } }
код для добавления данных
public void AddEmployee(Employee emp) { using (SqlConnection con = new SqlConnection(ConnectionString)) { SqlCommand cmd = new SqlCommand("spaddEmployee", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@FirstName", emp.FirstName); cmd.Parameters.AddWithValue("@LastName", emp.LastName); cmd.Parameters.AddWithValue("@Gender", emp.Gender); cmd.Parameters.AddWithValue("@DOB", Convert.ToDateTime(emp.DOB)); cmd.Parameters.AddWithValue("@Hobby", emp.Hobby); cmd.Parameters.AddWithValue("@Photo", emp.Photo); cmd.Parameters.AddWithValue("@City", emp.City); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } }
мой следующий создание и представление индекса, данные отображаются на странице индекса
@ Html .LabelFor (model => model.Photo, htmlAttributes: new {@class = "control-label col-md-2"}) @ Html .TextBox ("Photo", "", new {type = "file"}) @ Html .ValidationMessageFor (model => model.Photo, "", new {@class = "text-danger"})
добавить метод FormMethod.post в представлении создания
Вы должны хранить в базе данных не только имя изображения, но и путь к нему.
Для получения более подробной информации см. Приведенный ниже URL с примером:
https://www.aspsnippets.com/Articles/Display-Images-inside-WebGrid-in-ASPNet-MVC.aspx