当我按下按钮时,jQuery使用ajax删除项目,但是我有可能制作一个可以"删除"刚刚发生的删除的函数吗?
我的删除控制器
[HttpPost]
public void DeleteProject(int Id)
{
var Item = from a in db.Project
where a.ProjectId.Equals(Id)
select a;
Project SelectedProject = Item.FirstOrDefault();
ICollection<ProjectProfile> Profiles = SelectedProject.ProjectProfile;
ICollection<Member> Members = SelectedProject.Member;
db.Member.RemoveRange(Members);
db.ProjectProfile.RemoveRange(Profiles);
db.Project.Remove(SelectedProject);
db.SaveChanges();
RedirectToAction("Index", "Projects");
}
有几种方法可以做到这一点。总体而言,提供明确的解决方案有点广泛,但以下是一些想法:
- 您可以创建一个将在一定时间内运行的任务,而不是立即删除,该任务将在一定时间内完成删除。说,10秒。在10秒钟内,您会显示一个"撤消"按钮,该按钮将从运行
SaveChanges()
取消该任务。 - 您可以将您要在临时表中删除的项目缓存并还原
- 您可以在表格中添加
IsDeleted
位,并用它来表示已删除记录已被删除,该记录可以随意翻转为" Un-Delete"。