我刚开始使用 WebGrid,我一直在寻找删除行的正确方法。
但我不想使用将用户重定向到另一个窗口的解决方案。我只希望当用户单击删除然后弹出一个确认窗口,如果用户选择是,删除数据并刷新页面,但使用 ajax。
我找到了一种方法来做到这一点,但我在互联网上还没有看到其他人以同样的方式这样做,我想知道将来遵循它是否是一个好习惯。
在 WebGrid 我有以下列定义:
grid.Column(header: "", format: @<text> <button type="submit" name="Delete" value="@item.Id">Delete</button></text>)
它在 @Ajax.Beginform(...) { ... }
在我的控制器中,我检查是否单击了删除按钮并以这种方式获取 Id:
[HttpPost]
public ActionResult Index(ManageOvertimesViewModel model, FormCollection formCollection)
{
...
if (formCollection["Delete"] != null)
{
int id = int.Parse(formCollection["Delete"]);
//Delete the data
return PartialView("IndexPartial", model);
}
...
}
当我在此视图中删除某些内容时,可以更改显示的其他数据,因此我需要发布 ViewModel 以在视图中重新创建一些 DropDowns,这就是我不使用 Ajax.ActionLink 解决删除问题的原因。
那么是不是实现删除的好方法呢?