0

我正在尝试像这样在 MVC4 中创建一个 ImagesController

在此处输入图像描述

但我不断收到这个错误。

在此处输入图像描述

使用此类为 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; }
}
4

1 回答 1

1

问题在于你在课堂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);
}
于 2011-12-03T14:25:57.217 回答