今天来翻,发现已经浏览到(500)800了,我说来过的哥们,这篇对你们有帮助吗,它有问题吗?请发表下!谢谢!

这个问题的源头是

1,[Bind(Exclude = "AlbumId")]
public class Album

[Bind(Exclude = "AlbumId")]表明bind的时候不会取AlbumId,不管你form里面是否有它。

2,

[ScaffoldColumn(false)]
public int AlbumId { get; set; }

导致生成的页面form里面没有包含AlbumId。

解决办法大概有2个:

第一步自然是给form加上AlbumId。

有两个方法:

1,

[HiddenInput()]
public int AlbumId { get; set; }

2,

@Html.HiddenFor(model => model.AlbumId)

第二步得到AlbumId,有两个方法:

1,去掉[Bind(Exclude = "AlbumId")]

2,edit方法如下:

[HttpPost]
public ActionResult Edit(int albumId, FormCollection formData)
{
var album = db.Albums.Find(albumId);
if (ModelState.IsValid)
{
object id=formData["AlbumId"];
UpdateModel<Album>(album, formData);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId);
ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId);
return View(album);
}

为什么需要设置[Bind(Exclude = "AlbumId")]呢,出于安全考虑。

相关文章:

  • 2021-11-28
  • 2022-12-23
  • 2021-08-21
  • 2022-12-23
  • 2022-12-23
  • 2021-07-01
  • 2022-02-02
  • 2021-09-27
猜你喜欢
  • 2021-07-22
  • 2022-01-10
  • 2021-11-29
  • 2022-12-23
  • 2021-10-18
  • 2021-09-23
  • 2022-12-23
相关资源
相似解决方案