【问题标题】:Remove form parameter from binding从绑定中删除表单参数
【发布时间】:2020-06-04 22:24:29
【问题描述】:

我有一个包含一些字段的表单,并且根据我不想将所有数据保存到数据库的数据。

可以说,我有这个控制器

 public ActionResult Edit([Bind(Include = "id,Costumer, City ,Obs")] Clients clients)
        {

            if (ModelState.IsValid)

                db.Entry(clients).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(clients);
        }

但有时我不想拯救这座城市。

如何从保存到数据库中删除城市?

我试过了

ModelState.Remove("City");

但它一直保存到数据库中

【问题讨论】:

    标签: asp.net-mvc entity-framework model-view-controller entity-framework-6


    【解决方案1】:

    如果 City 是导航属性,则类似于:

    db.Entry(clients.City).State = EntityState.Unchanged;
    

    如果 City 是一个字符串,那么

    db.Entry(clients).Property("City").IsModified = false;
    

    【讨论】:

    • 嗨,Visual Studio 抛出一个错误,提示“System.InvalidOperationException: '实体类型字符串不是当前上下文模型的一部分”
    • 谢谢大卫。在我把 db.Entry(clients).Property("City").IsModified = false;在 db.Entry(clients).State = EntityState.Modified 之后;它开始像我需要的那样工作。
    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 2021-10-28
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    相关资源
    最近更新 更多