直接进入正题。

在HomeController中有一个NotFound的Action方法。

public ActionResult NotFound()
{
return View();
}

对应的视图

@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>出错了</title>
</head>
<body>
<div style="text-align:center;font-size:1.5em">
为什么受伤的总是我 o(╥﹏╥)o
</div>
</body>
</html>

在Global.asax.cs中定义的Application_Error方法,在方法中获取错误并判断是否是静态资源的404错误,如果不是,则使用自定义的错误页显示

private readonly string[] staticFileExt = new string[] { ".axd", ".ashx", ".bmp", ".css", ".gif", ".htm", ".html", ".ico", ".jpeg", ".jpg", ".js", ".png", ".rar", ".zip",".woff",".ttf" ,".eot",".svg"};
protected void Application_Error()
{
var error = Server.GetLastError() as HttpException;
if (error!= null && error.GetHttpCode() == 404)
{
if (!IsStaticResource(Request))
{
Response.Clear();
Server.ClearError();
Response.TrySkipIisCustomErrors = true; IController controller = new HomeController(); var routeData = new RouteData();
routeData.Values.Add("controller", "Home");
routeData.Values.Add("action", "NotFound"); controller.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
}
}
} private bool IsStaticResource(HttpRequest request)
{
string extension = VirtualPathUtility.GetExtension(request.Path);
return staticFileExt.Contains(extension);
}

当前台访问存在的页面或资源时:

当访问不存在的非静态资源时,显示自定义错误页

当访问不存在的静态资源时:

MVC 实现自定义404错误页的更多相关文章

  1. cPanel设置自定义404错误页

    利用这个cpanel的错误页工具,你就可以定制错误页面了.设置自定义404错误页,有两种简单的方法. 一,利用cpanel后台控制面板添加设置404自定义错误页的方法 步骤       1.登录cPa ...

  2. IIS自定义404错误页显示“系统找不到指定的文件”解决方法

    在IIS站点属性里面设置了自定义的404错误页面为一个文件之后,有时一直不生效,总是提示这样一句话:“系统找不到指定的文件”. 其实这种错误也只是在某些网站程序中出现,其实解决办法很简单.这是由于II ...

  3. javaWeb项目配置自定义404错误页

        1.情景展示 为了隐藏tomcat版本信息以及显示更友好的错误信息提示,如何将404的错误跳转到指定页面? 2.解决方案 第一步:修改项目的web.xml 将如下代码添加到</web-a ...

  4. IIS7.0设置404错误页,返回500状态码

    一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...

  5. iis设置404错误页,返回500状态码

    一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...

  6. MVC3 自定义的错误页

    ASP.NET MVC3中如果配置文件出错了,怎么跳转到自定义的错误页,现在参考网上的档案是说 添加 如下配置文件,并且在路径Views/Shared/下添加Error页面,测试下没有用的,请大家看看 ...

  7. MVC异常过滤器 (错误页)

    控制器 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...

  8. 在ASP.NET MVC3项目中,自定义404错误页面

    在Web开发中,用户体验是至关重要的,一个友好的网站自然少不了自定义404错误页面. 让笔者为大家介绍404错误页面在ASP.NET MVC3项目中的配置: 第一步,在项目的Web.config文件中 ...

  9. asp.net mvc输出自定义404等错误页面,非302跳转。

    朋友问到一个问题,如何输出自定义错误页面,不使用302跳转.当前页面地址不能改变. 还要执行一些代码等,生成一些错误信息,方便用户提交反馈. 500错误,mvc框架已经有现成解决方法: filters ...

随机推荐

  1. Disconf 学习系列之Disconf 与 Diamond的横向对比(图文详解)

    不多说,直接上干货! Disconf 学习系列之Disconf是什么? Disconf 是来自百度的分布式配置管理平台,包括百度.滴滴出行.银联.网易.拉勾网.苏宁易购.顺丰科技 等知名互联网公司正在 ...

  2. switch开关

    1.开关按钮 效果如下图 2.css代码 .form-switch{ display: inline-block; } .form-switch input[type="checkbox&q ...

  3. springboot-6-整合jdbc

    如果有整合jpa了, 那么在dao中直接, 不需要引入依赖 @Resource private JdbcTempalte jdbcTempalte; 如果没有的话, 就先在pom.xml中加入依赖 & ...

  4. SpringBoot相关配置

    8.1 配置 Spring MVC的配置是通过继承WebMvcConfigurerAdapter类并重载其方法实现的; 前几个教程已做了得配置包括 01点睛Spring MVC 4.1-搭建环境 配置 ...

  5. .net mvc Razor 三元运算判断赋值 ?:

    预期效果: 当Model中的Age数字列值为0时,不显示该值. <input type="text" class="form-control onlyPositiv ...

  6. Dev中控件的js事件代码放在form标签中存在问题

    Dev中控件的js事件代码放在form标签中会获取不到(head标签中有其他js代码,未验证是否是这个问题)

  7. autofac使用Common Serivce Locator跟随wcf,mvc,web api的实例控制

    autofac本身只提供了基本的ioc容器的功能 要想在mvc,wcf,web api中使用,除了autofac本身,还需要引入对应的包(点击对应连接可查看文档) 除此之外,使用Common Serv ...

  8. [PHP] 深入理解PHP内核:变量及数据类型

    1.现实生活中我们会找一个小箱子来存放物品,一来显得不那么凌乱,二来方便以后找到.计算机也是这个道理,我们需要先在内存中找一块区域,规定用它来存放数据,并起一个好记的名字,方便以后查找.这块区域就是“ ...

  9. AVFoundation-视频录制以及拍照

    一般如果UI和UE在设计时只要求功能,对相机界面没什么要求的话,个人觉得调用系统相机(UIImagePickerController)就可以满足我们的需求比如照相或者录制视频,但是考虑界面美观性,有时 ...

  10. IntelliJ IDEA 使用经验总结

    一. 准备工作 1. 点击此下载 IntelliJ IDEA 开发工具 二. 注册 1. 修改  C:\Windows\System32\drivers\etc\hosts ,在末尾添加  0.0.0 ...