• musicstore edit方法出错的原因和解决方法


                     今天来翻,发现已经浏览到(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")]呢,出于安全考虑。

  • 相关阅读:
    观察者模式
    vim7.4+python3配置
    GAN_李弘毅讲解
    关于Anaconda的环境和包管理
    inception v1-v3 & Xception
    python使用PDB进行调试
    python中“*”、"*args"、"kwargs"三种用法
    解决样本类别不平衡以及困难样本问题的方法总结
    Focal Loss
    RefineDet网络简介(转载)
  • 原文地址:https://www.cnblogs.com/wusong/p/2958180.html
Copyright © 2020-2023  润新知