在asp.net mvc应用程序中处理未处理异常的一些策略是什么?
我想知道您在ASP.NET MVC中处理未处理异常的一些策略/实践 简而言之,我希望在任何错误发生时都避免出现黄色屏幕,并向访问者显示错误一致的错误消息 我的意思是,您是为此编写一个显示相应错误页面的控制器,还是以其他方式编写一个httpmodule并在全局级别捕获错误在asp.net mvc应用程序中处理未处理异常的一些策略是什么?,asp.net,asp.net-mvc,exception-handling,Asp.net,Asp.net Mvc,Exception Handling,我想知道您在ASP.NET MVC中处理未处理异常的一些策略/实践 简而言之,我希望在任何错误发生时都避免出现黄色屏幕,并向访问者显示错误一致的错误消息 我的意思是,您是为此编写一个显示相应错误页面的控制器,还是以其他方式编写一个httpmodule并在全局级别捕获错误 欢迎您向此方向提供任何信息。请尝试。不要使用您链接到的异常处理文章。这是一篇旧文章,他们没有在框架中添加HandleError属性。使用。它是在preview 4中添加的。使用HandleError属性是一种方法。下面是一个小示
欢迎您向此方向提供任何信息。请尝试。不要使用您链接到的异常处理文章。这是一篇旧文章,他们没有在框架中添加HandleError属性。使用。它是在preview 4中添加的。使用HandleError属性是一种方法。下面是一个小示例,我使用它来处理来自JQuery、ExtJs和其他方面的Ajax调用 在你的控制器上
public class DataController : Controller
{
[HandleError(ExceptionType = typeof(ArgumentException), View = "ErrorAjax")]
public void Foo(string x, string y)
{
if (String.IsNullorEmpty(x))
throw new ArgumentException("String cannot be empty!");
// Call your layers or whatever here
AnotherCall();
}
}
然后在您的视图上(ErrorAjax)。注意它是强类型的(HandleErrorInfo)
对不起,伙计!
很抱歉,处理您的请求时出错。
行动=
控制器=
消息=
几件怪事
我来查一下。谢谢你的意见。还要确保您的错误页面不返回任何错误。因为你必须使用HandlerErrorInfo作为它的模型-如上所示,但是当然还有其他可能的错误来源。另一个小提示:确保对你的消息进行HtmlEncode,或者如果你在.net 4上(在回答时不可用),使用
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<HandleErrorInfo>" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Sorry Dude!</title>
</head>
<body>
<div>
<!-- be creative here-->
Sorry, an error occurred while processing your request.
Action = <%= ViewData.Model.ActionName %>
Controller = <%= ViewData.Model.ControllerName %>
Message = <%= ViewData.Model.Exception.Message %>
</div>
</body>
</html>