zoukankan      html  css  js  c++  java
  • 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")]呢,出于安全考虑。

  • 相关阅读:
    高并发性能测试
    Gitlab源码库里代码提交后,如何触发jenkins自动构建?
    San初步使用
    客户端通过HTTP协议与服务端交换数据
    Web服务端开发需要考虑的问题(续)
    Web服务端开发需要考虑的问题
    我对Web开发的认识
    postgresql远程连接中断的处理
    关于12306的想法
    oracle context
  • 原文地址:https://www.cnblogs.com/wusong/p/2958180.html
Copyright © 2011-2022 走看看