gpt4 book ai didi

asp.net-mvc-3 - ASP .NET MVC 3 - 处理 ActionResult DeleteConfirmed 中发生的错误

转载 作者:行者123 更新时间:2023-12-03 08:35:34 25 4
gpt4 key购买 nike

在 Controller 中,可以使用 try-catch block 处理 Create/Edit ActionResult 的错误,并将错误显示在 View 上(通过 ModelState.AddModelError)。

现在我正在尝试使用 DeleteConfirmed ActionResult 进行类似的操作,但 View 页面上没有出现错误。我试图从中删除的表应该提示删除外键字段值。

我应该以不同的方式 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");

}

最佳答案

如果您进行重定向,您将丢失 ModelState。
所以你可以做两件事imo。

  • TempData 中设置错误消息["myerrorkey"] = dex.Message,因此消息将“存活”一次重定向
  • 更改您的方法,并在出现错误时返回一个 View ,以便在重定向期间不会清除模型状态

  • 我个人会选择第一个。所以你也可以考虑实现 TempData 以防删除告诉用户,在索引页面中,一切都很顺利。

    关于asp.net-mvc-3 - ASP .NET MVC 3 - 处理 ActionResult DeleteConfirmed 中发生的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016922/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com