在控制器中,可以使用try-catch块处理创建/编辑ActionResult的错误,并在视图上显示错误(通过ModelState.AddModelError)。
现在我尝试使用DeleteConfirmed ActionResult进行类似的操作,但视图页面上没有出现错误。我试图删除的表应该抱怨删除外键字段值。
我应该以不同的方式更改RedirectToAction还是添加其他内容?
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
try
{
StatusList statuslist = db.Status.Find(id);
db.Status.Remove(statuslist);
db.SaveChanges();
}
catch (DataException dex)
{
ModelState.AddModelError("", dex.Message);
return RedirectToAction("Delete");
}
return RedirectToAction("Index");
}
答案 0 :(得分:1)
如果进行重定向,则会丢失ModelState。 所以你可以做两件事imo。
我个人会选择第一个。所以你也可以考虑在删除的情况下实现TempData,告诉用户在索引页面中,一切顺利。