2017-07-09 4 views
0

Hello StackOverflow Community. J'ai un problème avec les téléchargements d'images dans mon projet de base de données MVC (code-first).Le téléchargement de l'image échoue MVC

Je peux télécharger des images et des chemins de code vers la base de données avec succès. Bien que l'édition de ces valeurs me renvoie null.

Ceci est mon Créer contrôleur qui télécharge des images Sucessfully

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public ActionResult Create([Bind(Include = "IDProduto,Nome,Descricao,Preco,IVA,Fotografia,Peso,Stock,Active,CategoriaFK")] Produto produto, HttpPostedFileBase file) 
     { 
      if (ModelState.IsValid) 
      { 
       if (file != null) 
       { 
        string FileName = Path.GetFileName(file.FileName); 
        string FullPath = Server.MapPath("~/Content/Imagens_Produto/") + FileName; 
        file.SaveAs(FullPath); 
        produto.Fotografia = FileName; 
       } 

       db.Produtos.Add(produto); 
       db.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 

      ViewBag.CategoriaFK = new SelectList(db.Categoria, "CategoriaID", "Nome", produto.CategoriaFK); 
      return View(produto); 
     } 

Et voici mon EDIT qui ne parvient pas à changer mon image et renvoie une exception de point zéro.

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public ActionResult Edit([Bind(Include = "IDProduto,Nome,Descricao,Preco,IVA,Fotografia,Peso,Stock,Active,CategoriaFK")] Produto produto, HttpPostedFileBase file) 
     { 
      if (ModelState.IsValid) 
      { 

       string FileName = Path.GetFileName(file.FileName); 
       string FullPath = Server.MapPath("~/Content/Imagens_Produto/") + FileName; 
       file.SaveAs(FullPath); 
       produto.Fotografia = FileName; 

       db.Entry(produto).State = EntityState.Modified; 
       db.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 
      ViewBag.CategoriaFK = new SelectList(db.Categoria, "CategoriaID", "Nome", produto.CategoriaFK); 
      return View(produto); 
     } 

Et c'est le domaine que j'ai sur mes deux Créer et Éditer les

<div class="form-group"> 
       @Html.LabelFor(model => model.Fotografia, htmlAttributes: new { @class = "control-label col-md-2" }) 
       <div class="editor-field"> 
        <input id="Fotografia" title="Upload de imagem" type="file" name="file" class="form-control" /> 
       </div> 
      </div> 

Comment puis-je résoudre ce problème? Merci d'avance! Vive

Répondre

0
méthode

votre entité non chargée à partir de DB et vous devez utiliser « Joindre » avant méthode « entrée »

db.Produtos.Attach(produto); 
db.Entry(produto).State = EntityState.Modified; 
db.SaveChanges();