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プロパティにあります。ImageEntityFrameworkは型HttpPostedFileBaseを理解せず、DBに格納できないため、コントローラージェネレーターはこれをチェックするのに十分賢いです。エラーメッセージは何が問題なのかを教えてくれませんが。これを修正するには、バイト配列を使用するようにプロパティを書き直す必要があります。

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 に答える