Obtention de l'erreur lors de la création ImagesController dans MVC 4
-
27-10-2019 - |
Question
Je suis en train de créer un ImagesController dans MVC4 comme ceci
Mais je continue à obtenir cette erreur.
n'a eu aucun problème pour créer contrôleur PersonnesController en utilisant cette classe
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual IEnumerable<Affair> Affairs { get; set; }
}
La solution
Le problème est avec votre propriété File
sur la classe Image
. Parce que EntityFramework ne comprendra pas le type HttpPostedFileBase
et ne peut pas le stocker dans le DB et le générateur de contrôleur est assez intelligent pour vérifier. Barbante le message d'erreur ne vous dit pas quel est le problème. Pour corriger cela, vous devez réécrire votre propriété à utiliser un tableau d'octets:
public class Image
{
...
public byte[] File { get; set; }
}
Et puis la génération de contrôleur devrait fonctionner. Et vous pouvez ajouter votre propre action de téléchargement d'image, quelque chose comme ceci:
[HttpPost]
public ActionResult Upload(Image image, HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
db.Entry(image).State = EntityState.Modified;
image.File = new byte[file.ContentLength];
file.InputStream.Read(image.File, 0, file.ContentLength);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(image);
}