简体   繁体   English

自加载实体以来,实体可能已被修改或删除。 (ASP.NET MVC)

[英]Entities may have been modified or deleted since entities were loaded. (ASP.NET MVC)

I try to update one property in table from SelectedList 我尝试从SelectedList更新表中的一个属性

Here is my model 这是我的模特

 public partial class Interwier
{
    [Key]
    public int Interwier_id { get; set; }
    [Display(Name = "ФИО")]
    public string FIO { get; set; }
    [Display(Name = "Email")]
    public string Email { get; set; }
    [Display(Name = "Телефон")]
    public string Telephone { get; set; }
    [Display(Name = "День рождения")]
    public System.DateTime Birthday { get; set; }
    [Display(Name = "Город")]
    public string City { get; set; }
    [Display(Name = "Зарплата")]
    public string Salary { get; set; }
    [Display(Name = "Английский язык")]
    public string English { get; set; }
    public Nullable<int> VacancyId { get; set; }
    public string Status { get; set; }

    public virtual Vacancy Vacancy { get; set; }
}

I need to update Status property. 我需要更新Status属性。

Here is Edit action in controller 这是控制器中的编辑动作

public ActionResult Edit(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Interwier interwierModel = db.InterwierModels.Find(id);
        if (interwierModel == null)
        {
            return HttpNotFound();
        }
        return View(interwierModel);
    }

    // POST: Interwier/Edit/5
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit([Bind(Include = "Id,Email,Telephone,Birthday,City,Salary,English,Status")] Interwier interwierModel)
    {
        if (ModelState.IsValid)
        {
            db.Entry(interwierModel).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Incoming");
        }
        return View(interwierModel);
    }

And here is how it looks on View 这是它在View上的外观

<div class="form-group" style="padding-left: 515px;">
        <div class="col-md-10">

            @Html.DropDownListFor(model => model.Status, new[]
                {
                    new SelectListItem() {Text = "Подтвердить", Value = "Одобрено"},
                    new SelectListItem() {Text = "Отправить в архив", Value = "Архив"},
                }, "Статус", new { @class = "form-control" })

        </div>
    </div>

When I click submit button I have this error 单击提交按钮时出现此错误

在此处输入图片说明

How I can handle this? 我该如何处理?

You need to include Interwier_id property as hidden field. 您需要包括Interwier_id属性作为隐藏字段。 Use HiddenFor extension method. 使用HiddenFor扩展方法。 You don't post the ID to server that's why EF cannot find the entity in DB. 您没有将ID发布到服务器,这就是EF无法在DB中找到实体的原因。 Assuming the code below is within the BeginForm block. 假设下面的代码在BeginForm块中。

@Html.DropDownListFor(model => model.Interwier_id)

<div class="form-group" style="padding-left: 515px;">
    <div class="col-md-10">

        @Html.DropDownListFor(model => model.Status, new[]
            {
                new SelectListItem() {Text = "Подтвердить", Value = "Одобрено"},
                new SelectListItem() {Text = "Отправить в архив", Value = "Архив"},
            }, "Статус", new { @class = "form-control" })

    </div>
</div>

And also update properties that you bind from Id to Interwier_id: 并更新从ID绑定到Interwier_id的属性:

[Bind(Include = "Interwier_id,...")]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 EF,更新不起作用,它表示实体可能已被修改或删除,因为实体已加载。 - EF, Update doesnt work, it says Entities may have been modified or deleted since entities were loaded. 自加载实体以来,实体可能已被修改或删除。 使用db.Entry(entity).State = EntityState.Modified; SaveChanges()时 - Entities may have been modified or deleted since entities were loaded. when using db.Entry(entity).State = EntityState.Modified;SaveChanges() DbUpdateConcurrencyException:自加载实体以来,实体可能已被修改或删除 - DbUpdateConcurrencyException: Entities may have been modified or deleted since entities were loaded EF Core 数据库操作引发错误“自加载实体以来,数据可能已被修改或删除” - EF Core database operation throws error "Data may have been modified or deleted since entities were loaded" 复合主键和错误:加载实体后数据可能已被修改或删除 - Composite primary key and error: data may have been modified or deleted since entities were loaded EF Core-自从使用SQL ON UPDATE CURRENT_TIMESTAMP加载实体以来,数据可能已被修改或删除。 - EF Core - data may have been modified or deleted since entities were loaded with SQL ON UPDATE CURRENT_TIMESTAMP 问题是delete语句影响了意外的行数(0)。 自加载实体以来,实体可能已被删除 - the problem is delete statement affected an unexpected number of rows (0). Entities may have been deleted since entities were loaded 存储更新,插入或删除语句会影响意外。自实体加载后修改或删除的实体 - Store update, insert, or delete statement affected an unexpected . Entities modified or deleted since entities were loaded 存储更新、插入或删除语句影响了意外数量的行 (0)。 实体可能已被修改或删除 - Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted 调用SaveChangesAsync时出现“意外的行数(0),实体可能已被修改…” - “unexpected number of rows (0), Entities may have been modified…” when calling SaveChangesAsync
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM