0

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 を使用する必要があるため、機能しませんでした。

何か案が?

4

1 に答える 1

0

これを試して

@using (Html.BeginForm()) {
<p>
    <input type="submit" class="delete" value="Delete"/> 
    <input type="submit" class="deactivate" value="Desactivate" />

</p>

   @Html.ActionLink("Back to List", "Index")
  }  
<scirpt type="text/javascript">
$(function(){
 $(".delete").click(function (){
   $(this).parents("form").action = "ControllerName/DeleteConfirmed";
   return true;
});

$(".deactivate").click(function (){
   $(this).parents("form").action = "ControllerName/Desactivate";
   return true;
});

});
</script>
于 2013-03-14T10:25:38.753 に答える