【发布时间】:2011-06-11 22:12:25
【问题描述】:
我只是想知道其他人在做什么,而不是快速修复。
问题是我使用 ModelState 向用户报告错误/验证,但是当我使用 RedirectToAction() 时,ModelState 丢失了。为了克服这个问题,我在我们的基础控制器中添加了一些代码(所有其他控制器都继承),在我添加的 OnActionExecuting 的覆盖中:
if (TempData["ModelState"] != null && !ModelState.Equals(TempData["ModelState"]))
ModelState.Merge((ModelStateDictionary)TempData["ModelState"]);
在 OnActionExecuted 的覆盖中我添加了:
TempData["ModelState"] = ModelState;
这样做的问题是它意味着一些错误消息可能会显示在错误的页面上。我只是在操作开始时运行ModelState.clear(),我知道会想要覆盖/更正当前错误,但在某些情况下它永远不会被清除并且错误会出现在奇怪的地方。
其他人如何处理这个问题?欢迎任何想法。谢谢
【问题讨论】:
标签: c# .net asp.net-mvc error-handling