MVC 自定义 错误页面

时间:2022-03-03 11:39:35

很多时候,我们需要自定义错误页面,用来当发生异常后引导用户进入一个比较友好的错误页面。

在这里,我归结一下我常用的2个方案

1   通过Global.asax 文件来处理异常信息(这个不管是 MVC 还是 WEBFORM 都是可以使用的)

在解决方案下,增加Global.asax 文件 ,

void Application_Error(object sender, EventArgs e)

        {

//捕获异常

            Exception ex = Server.GetLastError().GetBaseException();

//书写日志

            LogHelper.WriteLog("\r\n" + "StackTrace:\r\n" + ex.StackTrace + "\r\n\r\n" + "Message:\r\n" + ex.Message + "\r\n\r\n\r\n\r\n");

            Server.ClearError();

//自定义错误页面

            Response.Redirect("~/Home/ErrorPage");

        }

2  通过webconfig配置来完成。

<system.web>

    <customErrors mode="On"  defaultRedirect="~/Home/Index">

      <error statusCode="404" redirect="~/Home/ErrorPage"/>

    </customErrors>

</system.web>

增加web.config配置,

mode="On"    开启自定义错误

defaultRedirect="~/Home"     一般错误跳向的错误页面

statusCode="404"      错误码

redirect="~/Home/ErrorPage"   根据错误码,跳转指定的页面。

如上如果我在本地输入local/home/123321  这种一定不存在的页面时,就会自动跳转到/Home/ErrorPage页面了。