2012-05-28 52 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"] 

然后调用更新模型

相关问题