C# MVC ASP-停止将字段修改为空的编辑函数
因此,我尝试只更新MVC应用程序中的特定数据。每当我只编辑一个列表视图时,我都会编辑数据(这是有效的),但数据库表的其余部分将为空 比如说- 列表视图中的字段 EmployeeID、FirsName、LastName、电子邮件、主持人、管理员 不在列表视图中的字段 罗吉尼C# MVC ASP-停止将字段修改为空的编辑函数,c#,sql,asp.net,database,model-view-controller,C#,Sql,Asp.net,Database,Model View Controller,因此,我尝试只更新MVC应用程序中的特定数据。每当我只编辑一个列表视图时,我都会编辑数据(这是有效的),但数据库表的其余部分将为空 比如说- 列表视图中的字段 EmployeeID、FirsName、LastName、电子邮件、主持人、管理员 不在列表视图中的字段 罗吉尼 因此,在我的编辑页面中,我为员工ID、名字、姓氏和电子邮件等信息设置了只读,并为版主和管理员设置了两个复选框,这是我要编辑的唯一值 它们工作正常,但执行此操作时,LoginID数据库中的数据仅变为空 下面是我的编辑GET和P
因此,在我的编辑页面中,我为员工ID、名字、姓氏和电子邮件等信息设置了只读,并为版主和管理员设置了两个复选框,这是我要编辑的唯一值 它们工作正常,但执行此操作时,LoginID数据库中的数据仅变为空 下面是我的编辑GET和POST方法的代码 得到 职位 那么,如果数据库中没有任何用于LoginID的文本框,甚至在编辑页面上,我如何停止在字段LoginID中执行此操作呢 将状态更改为“已修改时,实体的所有属性 将标记为已修改,所有属性值将发送到 保存更改时的数据库被调用 因此,此
条目
方法将更新所有属性。根据我的建议,要仅更新某些实体的列,您必须手动查询记录并仅更新所需的属性
在Edit
(POST)方法中,将Entry()
方式更改为:
EmpContext ec = new EmpContext();
Employee _employee = ec.Employees.Single(x => x.Id == employee.Id);
// TO-DO Update required properties only
_employee.FirstName = employee.FirstName;
ec.SaveChanges();
public ActionResult Edit(Employee employee)
{
if (ModelState.IsValid)
{
EmpContext ec = new EmpContext();
ec.Entry(employee).State = EntityState.Modified;
ec.SaveChanges();
return RedirectToAction("List");
}
return View(employee);
}
EmpContext ec = new EmpContext();
Employee _employee = ec.Employees.Single(x => x.Id == employee.Id);
// TO-DO Update required properties only
_employee.FirstName = employee.FirstName;
ec.SaveChanges();