musicstore edit方法出错的原因和解决方法
2013-03-13 19:53
120 查看
今天来翻,发现已经浏览到(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,
加
第二步得到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")]呢,出于安全考虑。
这个问题的源头是
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")]呢,出于安全考虑。
相关文章推荐
- php session_start()出错原因分析及解决方法
- php session_start()出错原因分析及解决方法
- 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3
- GHOST系统的时候出错的原因和解决方法
- msseces.exe频繁出错的原因和解决方法?
- 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3.5的详细分析及安装过程
- WinXP系统explorer.exe出错的原因及解决方法
- explorer.exe经常出错的解决方法和原因
- Debug版运行正常而Release版出错的原因和解决方法
- _CrtIsValidHeapPointer出错的解决方法,找到了根本原因啦! 此博文包含图片
- Android requires compiler compliance level 5.0 or 6.0. 出错原因分析、解决方法
- 旗正规则引擎内存表出错的原因及解决方法分享
- 使用旗正规则引擎内存表出错的原因及解决方法
- 安装Oracle9i时提示“加载数据库时出错:areaQueries ”的原因及解决方法
- NoClassDefFoundError in Java的出错原因与解决方法
- 系统无法登录 提示“winlogon.exe文件出错”的原因及解决方法
- win10系统更新KB3124263补丁出错的原因以及解决方法
- 关于bcp out 于bcp in出错的一般原因和解决方法
- php session_start()出错原因分析及解决方法
- edittext的setOnKeyListener里面的方法响应两次的原因和解决方法