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删除行动和取消行动。
有什么想法?
变化形式的尊重上点击按钮的动作,你可以把它完成。 – 2013-03-14 10:21:49
感谢您的回答,但我没有真正了解您的意思。我应该在视图中操作我的更改吗? – Traffy 2013-03-14 10:26:40
以及只是从视图中更改表单的动作,并且休息已经实现。还有一件事你可以做的就是删除停用动作,取一个隐藏的输入字段,它将跟踪哪个按钮被点击,并根据该值执行控制器中的操作..但我提出的解决方案将有效地工作您。因此更好地去与现有的 – 2013-03-14 10:37:41