2 つの送信ボタンを含むビューで値を共有する必要がある 2 つのアクションの使用方法に問題があります。「削除」ビューでは、アクションを実行する必要があります。その人を削除するか、その人を非アクティブ化します(非アクティブ化とは、契約に終了日を割り当てることを意味します)。
これが私の送信ボタンです:
@using (Html.BeginForm()) {
<p>
<input type="submit" value="Delete"/>
<input type="submit" value="Desactivate" />
</p>
@Html.ActionLink("Back to List", "Index")
}
そして、私の行動があります:
public ActionResult Delete(long id = 0)
{
Person person = db.Persons.Single(p => p.Id_Person == id);
if (person == null)
{
return HttpNotFound();
}
return View(person);
}
//
// POST: /Person/Delete/5
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(long id)
{
Person person = db.Persons.Single(p => p.Id_Person == id);
db.Persons.DeleteObject(person);
db.SaveChanges();
return RedirectToAction("Index");
}
[HttpPost]
public ActionResult Desactivate(long id)
{
Person person = db.Persons.Single(p => p.Id_Person == id);
person.EndDate = DateTime.Now;
db.Persons.Attach(person);
db.ObjectStateManager.ChangeObjectState(person, EntityState.Modified);
db.SaveChanges();
return RedirectToAction("Index", "Person");
}
送信ボタンを別のフォームに分割しようとしましたが、削除アクションと非アクティブ化アクションに同じ ID を使用する必要があるため、機能しませんでした。
何か案が?