2017-08-29 50 views
1

排除我有一個模型,如下所示:場與NULL值更新,即使它是從屬性格式綁定

public class ApplicationUser 
{ 
    public Int64 Id { get; set; } 
    public string FullName { get; set; } 
    public string Email { get; set; } 
    public string Password { get; set; } 
} 

我的控制器具有操作編輯模型如下:

public ActionResult MyProfile(int id) 
    { 
     var currentUser = _context.ApplicationUsers.Find(applicationuser.Id); 
     return View(currentUser); 
    } 

    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult MyProfile([Bind(Exclude="Password")]ApplicationUser applicationuser) 
    { 
     if (ModelState.IsValid) 
     { 
      _context.Entry(applicationuser).State = EntityState.Modified; 
      _context.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
     return View(applicationuser); 
    } 

這裏,POST方法正在更新FullName電子郵件字段。但是,它將NULL值更新爲密碼字段。如何避免這種情況?

+0

難道你不告訴它排除密碼綁定(對不起,還沒有做大量的工作與內置的模型聯編程序)。你不期望它是空的嗎? –

+0

我不想更新「密碼」字段,我希望初始值始終存在。 –

+0

字符串的缺省值爲空。您正在告訴模型聯編程序忽略Password屬性,因此它永遠不會設置爲任何內容。 –

回答

1

這裏綁定attribute'll幫不了你了,就把這行之前savechanges()

db.Entry(model).Property(x => x.Password).IsModified = false

+1

這真是太棒了!我已經添加了這個,並按預期工作。現在密碼字段不更新,我看到原始值。 –

+0

@Shreekumar S很高興它可以幫助你歡呼:) – Curiousdev