У меня есть предприятие, added_from
, last_edited
, last_edited_from
в модели Products
. Если кто-то создает новый Product
, четыре перечисляемых объекта должны быть заполнены соответствующими данными; С этим все в порядке. Если кто-то редактирует 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 часов, но не нашел ничего, что помогло мне
Второй был хороший выбор для меня, я уже подозревал что-то подобное, но я действительно не понимаю ...: S –