0

ファイルアップロード機能の作成が完了しました。データベースにアップロードする画像の場合。これは正常に機能しています。

以下のコードは、1つのイメージのみを含むコントローラーの短縮バージョンです。

    [HttpPost]
            public ActionResult Create(CarAdvert caradvert,
                 HttpPostedFileBase picture1)
            {
                if (ModelState.IsValid)
                {

                    if (picture1 != null)
                    {
                        string image1 = picture1.FileName;
                        caradvert.Image1 = image1;
                        var image1Path = Path.Combine(Server.MapPath("~/Content/Images"), image1);
                        picture1.SaveAs(image1Path);
                    }
db.CarAdverts.Add(caradvert);
                 db.SaveChanges();
                 return RedirectToAction("Index");

レコードが作成されると、すべての画像が正常にアップロードされます。コントローラのコードは機能します。アップロードされた画像を編集しようとすると、問題が発生します。画像は保存されません。

[HttpPost]
            public ActionResult Edit(CarAdvert caradvert,  HttpPostedFileBase picture1)
            {
                if (ModelState.IsValid)
                {

                    if (picture1 != null)
                    {
                        string image1 = picture1.FileName;
                        caradvert.Image1 = image1;
                        var image1Path = Path.Combine(Server.MapPath("~/Content/Images"), image1);
                        picture1.SaveAs(image1Path);
                    }


                db.Entry(caradvert).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
4

1 に答える 1

0

「caradvert」エンティティを DbContext にアタッチする必要があると思います。編集機能でこれを試してください。

db.CarAdverts.Attach(caradvert);  // Entity is in Unchanged state
db.Entry(caradvert).State = EntityState.Modified;

db.SaveChanges();
于 2012-04-05T05:16:02.300 に答える