2015-09-26 38 views
-2

我需要更新行中的某些列,但我不知道用戶將更新它的列。 有很多必填字段,可能是用戶並不需要更新一些這方面需要通過這種方式提交MVC 5更新行中的未知列

  [HttpPost] 
     public ActionResult Edit(int id,users user) 
     { 

       users query = db.users.Single(u => u.Id == id); 


      query.username = user.username; 
      query.password = user.password; 
      query.confirmPassword = user.confirmPassword; 
      query.email = user.email; 
      query.type = user.type; 
      query.photopath = user.photopath; 
      query.address = user.address; 
      query.note = user.note; 

      db.SaveChanges(); 

       return RedirectToAction("Index"); 
} 

如果我更新一些需要申請有錯誤

例外類型 'System.Data.Entity.Validation.DbEntityValidationException'在EntityFramework.dll中出現 ,但未在用戶代碼中處理

附加信息:V alidation因一個或多個實體失敗。 有關更多詳細信息,請參閱「EntityValidationErrors」屬性。

+0

,因爲你可能設置所需字段設置爲null(從用戶對象),然後通過使用if條件進行更新,因此您的更新不能這樣工作。爲什麼不在分配必填字段之前檢查值? –

+0

不...它具有相同的數據(舊數據) –

+0

因此,請查看EntityValidationErrors。你的問題不是來自空值。 –

回答

0

支票排這就需要更新 在

if(!user.username.toString().Equals(query.username))//dont update it when already they are same 
{ 
query.username = user.username; 
} 
+0

仍然無法正常工作 –