asp.net mvc中错误黄页的处理
2013-06-25 17:58
477 查看
1.首先捕获错误信息
/*[HandleError]:此属性指定此类出错时捕获错误信息;
* 此属性其实可以不指定,因为Global.asax.cs默认所有的控制器出错都会捕获错误信息,
* 见filters.Add(new HandleErrorAttribute()),这两种方法有一即可;
*/
[HandleError]
public class HomeController :
Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
int[] a = { 1,2,3};
int b = a[4]; //故意的错误,溢出
return View();
}
public ActionResult About()
{
return View();
}
}
2.配置中开启错误重定向页
<customErrors mode="On"defaultRedirect="~/Error/HttpAllError">//默认都重定向到此页
<error statusCode="404"redirect="~/Error/NoFound"/> //404错误重定向到此页
</customErrors>
3.创建错误页控制器和视图
控制器代码:
public class ErrorController :
Controller
{
//
// GET: /Error/
public ActionResult HttpAllError()
{
return View("Error");
}
public ActionResult NoFound()
{
return View();
}
}
View页面代码,这些异常信息好好利用:
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Error";
}
<h2>
Sorry, an error occurred while processing your request.
</h2>
<h2>
A General Error Has Occurred</h2>
@if (Model != null)
{ <p>@Model.Exception.GetType().Name<br />
thrown in @Model.ControllerName @Model.ActionName</p> <p>
Error Details:</p> <p>@Model.Exception.Message</p>
}
/*[HandleError]:此属性指定此类出错时捕获错误信息;
* 此属性其实可以不指定,因为Global.asax.cs默认所有的控制器出错都会捕获错误信息,
* 见filters.Add(new HandleErrorAttribute()),这两种方法有一即可;
*/
[HandleError]
public class HomeController :
Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
int[] a = { 1,2,3};
int b = a[4]; //故意的错误,溢出
return View();
}
public ActionResult About()
{
return View();
}
}
2.配置中开启错误重定向页
<customErrors mode="On"defaultRedirect="~/Error/HttpAllError">//默认都重定向到此页
<error statusCode="404"redirect="~/Error/NoFound"/> //404错误重定向到此页
</customErrors>
3.创建错误页控制器和视图
控制器代码:
public class ErrorController :
Controller
{
//
// GET: /Error/
public ActionResult HttpAllError()
{
return View("Error");
}
public ActionResult NoFound()
{
return View();
}
}
View页面代码,这些异常信息好好利用:
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Error";
}
<h2>
Sorry, an error occurred while processing your request.
</h2>
<h2>
A General Error Has Occurred</h2>
@if (Model != null)
{ <p>@Model.Exception.GetType().Name<br />
thrown in @Model.ControllerName @Model.ActionName</p> <p>
Error Details:</p> <p>@Model.Exception.Message</p>
}
相关文章推荐
- ASP.NET MVC错误处理的对应解决方法
- IIS8发布Asp.net MVC程序后出现404错误,处理程序staticFile
- ASP.NET MVC中错误处理方式
- ASP.NET MVC 中如何用自定义 Handler 来处理来自 AJAX 请求的 HttpRequestValidationException 错误
- asp.net mvc的Filter来验证Forms 判断是否登录,角色权限以及错误处理(转)
- ASP.NET MVC编程——错误处理与日记
- asp.net mvc 3 配置全局错误处理 Web.config中设置CustomError
- ASP.NET MVC编程——错误处理与日记
- ASP.NET MVC编程——错误处理与日记
- ASP.NET MVC中错误处理方式
- ASP.NET MVC 3 中,自定义全局的错误处理页面
- ASP.NET MVC编程——错误处理与日记
- ASP.NET MVC编程——错误处理与日记
- ASP.NET MVC应用中一个诡异错误的处理
- ASP.NET MVC编程——错误处理与日记
- ASP.NET MVC编程——错误处理与日记
- ASP.NET MVC中错误处理方式
- ASP.NET MVC编程——错误处理与日记
- ASP.NET MVC中错误处理方式
- ASP.net MVC4/MVC5 错误处理及设置