抱歉我的英文,希望你做得很好,我被列入使用MVC的列表情况,我有一个名为student的班级
public class student
{
[Key]
public int student_Id { get; set; }
public DateTime startdate { get; set; }
public DateTime enddate { get; set; }
public statut studentstatut { get; set; }
}
public enum statut
{
Garden,
Elementary,
College,
}
我想编辑班级学生,我可以编辑Id,两个日期,但是当我想编辑enum statut时它不会,它会停留在Garden中,当我在studentstatut中检查我的数据库时它会显示0,我不知道如何使它们变得动态,以便我可以在数据库中看到studentstatut并编辑法规(例如从花园到小学编辑),有人可以帮忙吗?
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Alimentation(Student Student)
{
if (ModelState.IsValid)
{
db.Orders.Add(Student);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(Student);
}
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Student student= db.Students.Find(id);
if (order == null)
{
return HttpNotFound();
}
return View(student);
}
////POST: /Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Student_id,startdate,enddate,AtmAmount,Statut")] Student student)
{
if (ModelState.IsValid)
{
db.Entry(student).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("index");
}
return View(student);
}
答案 0 :(得分:0)
首先,我将验证您是否从HttpPost Edit方法获取了正确的数据。如果您能够编辑和保存其他字段,则可能是您的客户端控件未正确设置学生对象的正确字段。在该方法中放入断点戳,以验证是否正确设置了studentstatut
字段。
如果是这样,并且某种程度上没有保存到数据库上下文中,则可以尝试手动设置该字段,而不是使用EntityState.Modified
。您可以通过以下方式做到这一点:
db.Entry(student).studentstatut = student.stdentstatut;
尽管通常是EntityState.Modified应该可以解决问题。