我的对象中有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);
}
}
答案 0 :(得分:2)
调用UpdateModel时,您应该使用excludeProperties和includeProperties。
简而言之......
string[] includeProperties = { “Name”, “Description”, “Active” };
UpdateModel(myModelView, includeProperties);
答案 1 :(得分:1)
首先不要排除属性,在更新代码的else部分添加以下行
item.Image =formValues["Image"]
然后调用更新模型