2012-05-28 48 views
0

我在我的對象中有ImageUrl。如果實體在未參考圖片的情況下進行編輯,則爲現場重置。我如何正確更新對象?如何更新模型沒有一些字段?

public ActionResult Index() 
    { 
     var items = db.Employes; 
     return View(items); 
    } 

    public ActionResult Edit(int id = 0) 
    { 
     var item = (id != 0) ? db.Employes.Find(id) : new Employee(); 

     return View(item); 
    } 

    [HttpPost] 
    [ValidateInput(false)] 
    public ActionResult Edit(int id = 0, FormCollection formValues = null, Employee item = null) 
    { 
     if (id == 0) 
      db.Employes.Add(item); 
     else 
     { 
      item = db.Employes.Find(id); 
      UpdateModel(item); 
     } 

    Helpers.FileSave("Image", item, formValues); 

     db.SaveChanges(); 

     return RedirectToAction("Index"); 
    } 

upd1:

從的UpdateModel excludind場後,我無法添加新的圖像:

if (id == 0) 
     db.Employes.Add(item); 
    else 
    { 
     item = db.Employes.Find(id); 
     if (formValues["Image"] != null) 
     { 
      UpdateModel(item); 
      Helpers.FileSave("Image", item, formValues); 
     } 
     else 
     { 
      string[] excludeProperties = { "Image" }; 
      UpdateModel(item, null, null, excludeProperties); 
     } 
    } 

回答

2

調用UpdateModel時,您應該使用excludeProperties和includeProperties。

總之...

string[] includeProperties = { 「Name」, 「Description」, 「Active」 }; 
UpdateModel(myModelView, includeProperties); 
+0

謝謝,該屬性被排除在外。這是絕對排除 - 我不能添加新的圖片)) – FreeVice

1

首先不排除第二個特性,在更新代碼的其他部分添加以下行

item.Image =formValues["Image"] 

然後調用更新模型

相關問題