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");
    }

アップ 1:

updateModel からフィールドを除外した後、新しい画像を追加できません:

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);
        }
    }
4

2 に答える 2

2

UpdateModelを呼び出すときは、excludeProperties と includeProperties を使用する必要があります。

要するに...

string[] includeProperties = { “Name”, “Description”, “Active” };
UpdateModel(myModelView, includeProperties);
于 2012-05-28T11:55:57.083 に答える
1

First don't exclude properties second,In your else part of updated code add the following line

item.Image =formValues["Image"]

then call the update model

于 2012-05-28T12:48:20.523 に答える