2014-04-25 42 views
0

我試圖做一個更新是這樣的:如何在ASP.NET MVC4中正確編輯操作?

[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(){} 
} 

知道,在調試模式下,我得到的輸入OS一邊IDOS的被設置爲0。

回答

0

的事情是你必須_dn.Entry(os).State=...後添加_db.SaveChanges()的全部數據,將更改保存到數據庫中 試試這個:

[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); 
    } 
相關問題