public ActionResult Edit([Bind(Include = "ArtistId,Name")] Artist artist) { if (ModelState.IsValid) { db.Entry(artist).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(artist)); }
public ActionResult Edit([Bind(Include = "GenreId,Name,Description")] Genre genre) { if (ModelState.IsValid) { db.Entry(genre).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(genre)); }
/*当 Action 方法的参数是模型类型的时候,ASP.NET MVC 将会试图使用表单中的数据来填充对象的属性, * 它通过检查表单参数的名字是否匹配模型对象的属性来进行,即查找能用于绑定的所有Album属性*/ public ActionResult Edit([Bind(Include = "AlbumId,GenreId,ArtistId,Title,Price,AlbumArtUrl")] Album album)//使用模型绑定器构建album参数,通过模型绑定获取请求参数 { //检查模型对象的有效性,确保用户输入有用的专辑特性值,有效则是happy path,无效则是sad path if (ModelState.IsValid) { //告知数据上下文该对象在数据库中已经存在,所以框架应获取现有的专辑应用数据而不是再创建一个新的专辑记录 db.Entry(album).State = EntityState.Modified; //在数据上下文中调用SaveChanges,这时上下文将生成一条SQL UPDATE命令来更新对应的字段值以保留新值 db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId); ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId); return(View(album)); }