我正在使用 MVC4。当我导致异常时,信息会显示在浏览器中。如何在异常助手中获取异常信息?感谢您的任何建议。
问问题
79 次
2 回答
0
您可以在 Global.asax 中使用异常处理:
protected void Application_OnError( )
{
var exception = Server.GetLastError( );
//handle exception here
}
您还可以使用异常过滤器:
有一个方法 'RegisterGlobalFilters()' 具有 'filters.Add(new HandleErrorAttribute())' 过滤器,可以处理MVC 应用程序中的所有错误。“Application_Start()”方法调用的“RegisterGlobalFilters()”方法。
public static void RegisterGlobalFilters(GlobalFiltersCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
错误视图
默认创建的错误视图包含以下 HTML:
Collapse | Copy Code
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Error</title>
</head>
<body>
<h2>
Sorry, an error occurred while processing your request.
</h2>
</body>
</html>
在错误视图中访问异常详细信息:
public class HandleErrorInfo
{
public HandleErrorInfo(Exception exception, string controllerName,
string actionName);
public string ActionName { get; }
public string ControllerName { get; }
public Exception Exception { get; }
}
检查此链接以获取更多信息:
PD:
在 web.Config 中设置:
<CustomErrors mode="Off">
停止在浏览器中查看异常
于 2013-10-02T09:33:37.643 回答
0
使用几种方法创建一个错误控制器(每个方法都是一个错误):
public Class Error : Controller
{
public ActionResult ErrorMethodName()
{
return View();
}
}
在每个 ErrorName.cshtml 中,写下有关您的错误的信息。
现在,对于其他控制器中的每个方法,请执行以下操作:
public ActionResult MethodeName()
{
try
{
// your code
}
catch (exception)
{
return.RedirectToAction('ErrorMethodName','Error');
}
}
于 2013-10-02T10:12:33.130 回答