我正在尝试以这种方式进行更新:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Modifier(OSModel os)
{
if (ModelState.IsValid)
{
_db.Entry(os).State = EntityState.Modified;
// success !
string str = "o";
return RedirectToAction("Index", new { str = str });
}
// fail !
return View(os);
}
使用此更新操作系统行后,该行不会更新。这有什么问题?
OSModel
[Table("OS")]
public class OSModel
{
[Key]
public int idOS { get; set; }
[Required]
public string nameOS { get; set; }
[Required]
public string versionOS { get; set; }
[Required]
public string editionOS { get; set; }
[Required]
public string servicepackOS { get; set; }
[Required]
public int bitsOS { get; set; }
public OSModel(){}
}
知道在调试模式下,我得到idOS的输入操作系统的完整数据,设置为0。
答案 0 :(得分:0)
你必须在_db.SaveChanges()
之后添加_dn.Entry(os).State=...
,以便在数据库中保存更改
试试这个:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Modifier(OSModel os)
{
if (ModelState.IsValid)
{
_db.Entry(os).State = EntityState.Modified;
_db.SaveChanges();// you must add this line
// success !
string str = "o";
return RedirectToAction("Index", new { str = str });
}
// fail !
return View(os);
}