如何创建共享错误消息页面?

时间:2013-06-18 05:24:57

标签: .net asp.net-mvc-4 custom-error-pages

在Asp.Net Mvc 4站点中,可能存在各种错误,应向最终用户显示错误消息(例如“找不到ID为xxx的行。”,“无法删除此行,因为它的xxx是依赖的在它上面。“,......等等。

如何(以及最佳方法)定义一般错误页面接受错误消息并显示它?或者只是一个弹出对话框?

4 个答案:

答案 0 :(得分:1)

您可以创建CustomException并在需要时抛出。 在全局asax中,您必须覆盖Application_Error

protected void Application_Error(object sender, EventArgs e)
{
            Response.Clear();
            var httpContext = ((MvcApplication)sender).Context;
            var ex = Server.GetLastError();
            // check exception and redirect to your custom error page with Title, Description and url for redirect.
}

答案 1 :(得分:1)

在Controller中创建一个ErrorAction。

您可以捕获错误并使用消息重定向到ErrorAction。显示你想要的。

我希望你理解我的观点。

答案 2 :(得分:0)

这就是我们以前在其中一个项目中所做的工作。我们的页面中有一个div标签,用于显示所有成功和失败消息。它的工作方式如下:

  1. 我们会通过AJAX从控制器获取消息。
  2. 然后我们将该消息注入div标签。
  3. 我们会根据成功条件切换该div的html类。如果在这种情况下成功,我们将以绿色显示整个消息,如果是错误,我们将以红色显示整个消息,并使用交叉。我们的site.css中定义了css类。
  4. 我希望我已经回答了你的问题。

答案 3 :(得分:0)

我建议创建一个部分View和一个简单的Error模型。 视图将在布局中呈现。然后,错误模型可以作为TempData过去,因为它在第一次读取后被删除。在视图中,如果你有变量,在TempData中 - 你显示具有必要布局的元素,否则 - 你不显示任何东西。同样,您可能在TempData上有一个扩展方法来添加错误。