错误提示:
存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。
解决案:
1.在view中或model中增加隐藏id
1.1 修改model
[HiddenInput()]
public int AlbumId { get; set; }
1.2在视图中增加:(一般 若是用自动新建的curd中会自带)
加@Html.HiddenFor(model => model.AlbumId)
2.得到id也有两种方法一种是修改model另一种根据id得到实体后修改edit方法; 如下所示:
2.1修改model
去掉[Bind(Exclude = "AlbumId")]
2.2修改edit方法:
[HttpPost]
public ActionResult Edit(int albumid, FormCollection formData)
{
var album = db.Albums.Find(albumid);
if (ModelState.IsValid)
{
UpdateModel<Album>(album, formData);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId);
ViewBag.ArtistId = new SelectList(db.Artist, "ArtistId", "Name", album.ArtistId);
return View(album);
}
此解决方案出处:http://www.cnblogs.com/wusong/archive/2013/03/13/2958180.html
MVC自我学起之MVCMusic开发中遇到问题:musicstore edit方法出错的原因和解决方法,布布扣,bubuko.com