1

在我的SachController中,有一个如下所示的 Edit 方法。在视图中,上传对象有几个textbox和一个。有时,用户不想更改图像,他们只是不选择新图像。( )为空。file-inputimageimageHttpPostedFileBase

我怎样才能避免空图像,但仍然使用这样的简短更新:

            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Edit([Bind(Include = "MaSach,NhanDe,MaDM,MaNXB,NamXB,GiaBia,PhanTramGiamGia,TrongLuong,MaBV,MaBia,Dai,Rong,Cao")] Sach sach, HttpPostedFileBase image)
            {
                if (ModelState.IsValid)
                {
                    uploadImage(sach, image);
                    db.Entry(sach).State = EntityState.Modified;                
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
                ViewBag.MaBV = new SelectList(db.BaiViet, "MaBV", "NhanDe", sach.MaBV);
                ViewBag.MaBia = new SelectList(db.Bia, "MaBia", "TenBia", sach.MaBia);
                ViewBag.MaNXB = new SelectList(db.NhaXuatBan, "MaNXB", "Ten", sach.MaNXB);
                return View(sach);
            }
4

1 回答 1

2

将图像属性标记为未修改:

db.Entry(sach).State = EntityState.Modified;
if (image == null)
   db.Entry(sach).Property(m => m.Image).IsModified = false;
db.SaveChanges();
于 2015-06-23T04:51:23.077 回答