我创建了一个ASP MVC Web应用程序。我为Error 404表单添加了一个自定义错误页面。Web配置中的自定义错误部分看起来像这样:
<customErrors mode="On"> <error statusCode="404" redirect="/errors/Error404" /> </customErrors>
我有一个返回HttpNotFound结果的控制器
return HttpNotFound();
问题是它显示的是默认的错误404页面,而不是我的自定义页面。
2ic8powd1#
正如我在上面的评论中提到的,因为是控制器返回HttpNotFound,所以它不会被拦截和处理。浏览器收到的状态代码404作为您的控制器的结果,然后浏览器显示它自己的默认页面为404错误尝试拨打:控制器操作中的throw new HttpException(404, "Not found")而不是HttpNotFound
throw new HttpException(404, "Not found")
HttpNotFound
pkbketx92#
您可以抛出HttpException消息或重定向到相应的错误页面,而不是HttpNotFound():
throw new HttpException(404, "Not found");
或
return RedirectToAction("NotFound","Error");
最好使用return语句,就像有一个全局try-catch一样,第一个语句不会显示错误页面。
2条答案
按热度按时间2ic8powd1#
正如我在上面的评论中提到的,因为是控制器返回HttpNotFound,所以它不会被拦截和处理。浏览器收到的状态代码404作为您的控制器的结果,然后浏览器显示它自己的默认页面为404错误
尝试拨打:控制器操作中的
throw new HttpException(404, "Not found")
而不是HttpNotFound
pkbketx92#
您可以抛出HttpException消息或重定向到相应的错误页面,而不是HttpNotFound():
或
最好使用return语句,就像有一个全局try-catch一样,第一个语句不会显示错误页面。