多个提交按钮与2个动作共享相同的信息

本文关键字:共享 信息 提交 按钮 2个 | 更新日期: 2023-09-27 18:03:46

我有一个关于如何使用必须在包含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为删除操作和取消激活操作。

任何想法?

多个提交按钮与2个动作共享相同的信息

试试这个

@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>