Моя модель:
public int ID { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
public byte[] Fotografia { get; set; }
Контроллер (создание / получение):
// GET: Empleados/Create
public ActionResult Create()
{
return View();
}
Контроллер (создание / публикация):
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,Nombre,Paterno,Fotografia,")] Empleado empleado, HttpPostedFileBase foto)
{
var db = new SIPAE_Context();
if (foto != null)
{
empleado.Fotografia = new byte[foto.ContentLength];
foto.InputStream.Read(empleado.Fotografia, 0, foto.ContentLength);
if (ModelState.IsValid)
{
db.Empleados.Add(empleado);
db.SaveChanges();
return RedirectToAction("Index");
}
}
if (ModelState.IsValid)
{
db.Empleados.Add(empleado);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(empleado);
}
Просмотр (создание)):
@using (Html.BeginForm("Create","Empleados",FormMethod.Post, new {
enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
Name
<div class="col-md-10">
@Html.EditorFor(model => model.Name, new { htmlAttributes =
new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class
= "text-danger" })
</div>
</div>
<div class="form-group">
Last Name
<div class="col-md-10">
@Html.EditorFor(model => model.LastName, new { htmlAttributes = new
{
@class = "form-control" } })
@Html.ValidationMessageFor(model => model.LastName, "", new { @class
= "text-danger" })
</div>
</div>
<div class="form-group">
Fotografia
<div class="col-md-10">
<input type="file" id="foto" name="foto" />
@Html.ValidationMessageFor(model => model.Fotografia, "", new {
@class = "text-danger" })
</div>
</div>
Просмотр (индекс):
<table class="table">
<tr>
<th>
Fotografia
</th>
<th>
Name
</th>
<th>
Last Name
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@{
if (item.Fotografia != null)
{
var base64 = Convert.ToBase64String(item.Fotografia);
var imgsrc = string.Format("data:image/jpeg;base64,{0}", base64);
<img src='@imgsrc' style="max-height:100px;max-width:100px" />
}
Html.DisplayFor(modelItem => item.Fotografia);
}
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.ActionLink("Editar", "Edit", new { id = item.ID }) |
@Html.ActionLink("Detalles", "Details", new { id = item.ID }) |
@Html.ActionLink("Eliminar", "Delete", new { id = item.ID })
</td>
</tr>
}
Пока все хорошо, я могу вставить нового пользователя с именем, фамилией и изображением (фотография) и отобразить его.То, что мне нужно сделать, это редактировать вид, я хочу, чтобы он отображал имя изображения (Fotografia).Можете ли вы направить меня в правильном направлении?
Это то, что у меня есть на контроллере (Get):
// GET: Empleados/Edit/5
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Empleado empleado = db.Empleados.Find(id);
if (empleado == null)
{
return HttpNotFound();
}
return View(empleado);
}
Это то, что у меня на контроллере (сообщение):
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "ID,Name,LastName,Fotografia")]
Empleado empleado, HttpPostedFileBase foto)
{
var db = new SIPAE_Context();
if (foto != null)
{
empleado.Fotografia = new byte[foto.ContentLength];
foto.InputStream.Read(empleado.Fotografia, 0, foto.ContentLength);
if (ModelState.IsValid)
{
db.Entry(empleado).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
}
if (ModelState.IsValid)
{
db.Entry(empleado).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(empleado);
}
Здесь я могу отредактировать пользователя, но не показываю предыдущее изображение (Fotografia), поэтому, если я нажму "отправить" без загрузки нового изображения (Fotgrafia), оно удалит предыдущее.То, что я должен сделать, - это вид Edit, я хочу, чтобы он отображал название изображения (Fotografia).Можете ли вы направить меня в правильном направлении?