Fehler beim Erstellen von ImagesController in MVC 4 erhalten
-
27-10-2019 - |
Frage
Ich versuche, in MVC4 einen ImagesController wie dieses zu erstellen
Aber ich bekomme diesen Fehler immer wieder.
Hatte kein Problem damit, einen Controller für PeopleController mit dieser Klasse zu erstellen
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; }
}
Lösung
Das Problem ist mit Ihrem File
Eigentum auf der Image
Klasse. Weil EntityFramework den Typ nicht versteht HttpPostedFileBase
Und kann es nicht im DB speichern und der Controller -Generator ist klug genug, um dies zu überprüfen. In der Fehlermeldung sagt Ihnen die Fehlermeldung nicht, was das Problem ist. Um dies zu beheben, sollten Sie Ihre Eigenschaft neu schreiben, um ein Byte -Array zu verwenden:
public class Image
{
...
public byte[] File { get; set; }
}
Und dann sollte die Controller -Generation funktionieren. Und Sie können Ihre eigene Image -Upload -Aktion hinzufügen, so ähnlich wie folgt:
[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);
}