Boa tarde a todos novamente.
Estou com uma outra situação, na hora de editar um registro. Tenho um formulário que faz upload de uns arquivos, e até ai tudo bem. Ele cria os registros perfeitamente. Porém, na hora de editar, suponhamos que eu não queira editar a foto, não quero precisar
ter de subir ela novamente só por que alterei o descritivo, e deixe o campo em branco. Então o sistema esta entendendo que tem de apagar o registro e deixa o campo vazio, quando na verdade ele não precisa mecher o mesmo. Estou tentando utilizar o EntityState.Unchanged()
mas não estou conseguindo. Podem me ajudar?
[HttpPost]
[ValidateInput(false)]
public ActionResult Edit(Produto produto, string id, HttpPostedFileBase Foto)
{
if (ModelState.IsValid)
{
if (Foto != null)
{
if (Foto.ContentLength > 0)
{
string savedFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "content/produtos_images");
savedFileName = Path.Combine(savedFileName, Path.GetFileName(Foto.FileName));
produto.Foto = Path.GetFileName(Foto.FileName);
Foto.SaveAs(savedFileName);
}
}
if (produto.Foto != null)
{
db.Entry(produto.Foto).State = EntityState.Unchanged;
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
db.Entry(produto).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
}
ViewBag.ProdutoCategoriaId = new SelectList(db.Categorias, "Id", "Nome", produto.ProdutoCategoriaId);
return View(produto);
}
Não importa ao tempo o minuto que passa, mas o minuto que vem.