モデルProducts
にadded
、added_from
、last_edited
、last_edited_from
があります。誰かが新しいProduct
を作成すると、4つの列挙されたエンティティが対応するデータで埋められます。これですべてが問題ありません。もし誰かがProduct
を編集しているのであれば、last_edited
個のエンティティのみを書き込むことになりますが、コントローラの私のメソッドは毎回added
個のエンティティを上書きして空にします。MVCコントローラがデータを上書きする
コントローラ方法:
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Product product= db.Product.Find(id);
if (product== null)
{
return HttpNotFound();
}
ViewBag.Category_id = new SelectList(db.Category, "Id", "Name", product.Category_id);
return View(product);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Id,Barcode,Name,Category_id,Comment")] Product product)
{
if (ModelState.IsValid)
{
product.last_edited = DateTime.Now;
product.last_edited_from = User.Identity.GetUserId();
db.Entry(product).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.Category_id = new SelectList(db.Category, "Id", "Name", product.Category_id);
return View(product);
}
モデル:
public int Id { get; set; }
public double Barcode { get; set; }
[MinLength(3)]
public string Name{ get; set; }
[ForeignKey("Category_id")]
public Category CategoryFK { get; set; }
[Required]
public int Category_id { get; set; }
public DateTime? added { get; set; }
[ForeignKey("added_from")]
public ApplicationUser added_from_User { get; set; }
public string added_from { get; set; }
public DateTime last_edited { get; set; }
[ForeignKey("last_edited_from")]
public ApplicationUser last_edited_from { get; set; }
public string last_edited_from { get; set; }
は、私は〜5時間程度試みたが、私にはあなたのポストの外観は、HTMLのように何
は二番目が私のために良い選択だった、私はすでに同様のものを疑われていたが、私は本当に...それを取得できませんでした:S –