Pregunta

Estoy tratando de crear un controlador de imágenes en MVC4 como este

enter image description here

Pero sigo recibiendo este error.

enter image description here

No tuvo problemas para crear controlador para PeopleController usando esta clase

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; }
}
¿Fue útil?

Solución

El problema es con tu File propiedad en el Image clase. Porque EntityFramework no entenderá el tipo HttpPostedFileBase Y no puede almacenarlo en el DB y el generador del controlador es lo suficientemente inteligente como para verificar esto. Sin embargo, el mensaje de error no le dice cuál es el problema. Para solucionar esto, debe reescribir su propiedad para usar una matriz de bytes:

public class Image
{
    ...
    public byte[] File { get; set; }
}

Y luego la generación del controlador debería funcionar. Y puede agregar su propia acción de carga de imagen, algo como esto:

[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);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top