Вопрос

Я пытаюсь создать изображение Controller в MVC4, как это

enter image description here

Но я продолжаю получать эту ошибку.

enter image description here

Не было проблем с созданием контроллера для Peoplecontroller, используя этот класс

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; }
}
Это было полезно?

Решение

Проблема с вашим File собственность на Image учебный класс. Потому что EntityFrameWork не поймет тип HttpPostedFileBase И не могу хранить его в БД, и генератор контроллера достаточно умный, чтобы проверить это. В целом сообщение об ошибке не говорит вам, в чем проблема. Чтобы исправить это, вы должны переписать свою собственность, чтобы использовать байтовый массив:

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

И тогда поколение контроллера должно работать. И вы можете добавить свое собственное действие загрузки изображения, что -то вроде этого:

[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);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top