首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Asp.Net MVC中的404 Http错误处理程序(RC 5)

ASP.NET MVC是一个用于构建动态Web应用程序的框架,其中包括用于处理HTTP请求的ASP.NET核心架构。如果您在MVC应用程序中遇到404 HTTP错误,这可能是因为所请求的页面未找到或者路径存在问题。为帮助处理这些404 HTTP错误,ASP.NET MVC提供了404 Http错误处理程序,它可以在发生错误时返回自定义错误信息。

在ASP.NET MVC 5中,404 Http错误处理程序默认情况下被启用。它可以通过Global.asax文件中的Application_Error方法来设置自定义异常处理逻辑。当发生404错误时,默认情况下它将返回一个包含404 Not Found状态的HTTP状态响应。

但是,如果您希望自定义404错误处理程序的行为,则可以使用HTTP状态码和自定义错误信息来自定义响应。例如:

代码语言:csharp
复制
public class HomeController : Controller
{
    public ActionResult NotFound()
    {
        Response.StatusCode = 404;
        Response.StatusDescription = "Page not found.";
        return View();
    }
}

在这里,当发生404错误时,应用程序将返回一个HTTP状态响应,其中状态码为404,状态描述为“Page not found。”。当自定义错误处理程序返回一个视图而不是一个HTTP状态响应时,404错误页将被显示。

此外,您可以使用路由配置来重写404处理程序。例如,您可以将以下路由添加到Global.asax文件中:

代码语言:csharp
复制
protected void Application_Start()
{
    RouteConfig.RegisterRoutes(RouteTable.Routes);

    // 移除默认的404错误处理程序
    RouteTable.Routes.IgnoreRoute("NotFound", new { controller = "Errors", action = "Handle404" });

    // 重写404错误处理程序,并返回自定义错误页面
    RouteTable.Routes.MapRoute("handle404", "{controller=Home}/{action=NotFound}", new { controller = "Home", action = "NotFound" });
}

在这里,我们使用RouteConfig.RegisterRoutes方法注册了所有默认的路由配置,并删除了默认的404错误处理程序。然后,我们将一个名为“handle404”的新路由添加到路由表中,以处理特定条件下的404错误。当发生404错误时,请求将被路由到Home/NotFound控制器和NotFound动作中,并且我们将返回一个自定义的错误页面。

总之,ASP.NET MVC中的404 Http错误处理程序(RC 5)使用HTTP状态响应和视图来处理404 Not Found状态。您可以通过自定义错误处理代码或路由配置来自定义404错误处理程序的行为。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

asp.net mvc 的异常处理解决方案

应用程序发生异常时,给用户一个友好的处理方式,同时将异常记录下来并通知系统管理员或是运维人员是应用的开发的常用场景。...web form上微软提供了一个工具包,关于这个工具包参看推荐一个工具包自定义HTTP 404错误。如何在asp.net mvc上实现这样的功能呢?...asp.net mvc 在创建项目的时候在Views的Shared目录下有一个错误处理页Error.aspx视图,这个默认的错误处理功能没有实现对错误日志的记录。...in ASP.NET MVC RC2:http://blogs.microsoft.co.il/blogs/shay/archive/2009/03/06/real-world-error-hadnling-in-asp-net-mvc-rc2....aspx ELMAH with ASP.NET MVC: http://darrell.mozingo.net/2009/02/19/elmah-with-aspnet-mvc/ 将这两文章的内容整合

89490

ASP.NET MVC5中的Model验证

Model验证是ASP.NET MVC中的重要部分,它主要用于判断输入的数据类型及值是否符合我们设定的规则,这篇文章就介绍下ASP.NET MVC中Model验证的几种方式。...注意,Age属性上并未标注RequiredAttribute,却依然提示Age字段必须,这是因为Age是int类型,int类型不能为null,对于不能为null的类型,ASP.NET MVC默认为是必须的...除此之外,ASP.NET MVC还会帮助我们进行数据类型的验证,如,若在年龄一栏输入非整数,那么验证将不会通过,且会提示数值不合法。...除了我们自己手写js代码外,ASP.NET MVC也提供了前端验证方法,要启用ASP.NET MVC提供的前端验证方法需要在页面中引入三个js文件: jquery-1.10.2.min.js(也可以是其它版本的...引用文件之后,运行程序,然后查看页面源代码,可以看到form中的input标签中多出了 data-val 属性以及其它的和数据注解相关的属性。 对于验证失败的信息,我们需要对用户进行相应的提醒。

1.5K20
  • 《从零开始学ASP.NET CORE MVC》:ASP.NET Core 中的 Main方法(5)

    本文出自《从零开始学ASP.NET CORE MVC》 推荐文章:ASP.NET Core Web 项目文件 ASP.NET Core 中的 Main方法 一个开始专心写字的人 在ASP.NET Core...ASP.NET Core 应用程序最初作为控制台应用程序启动,而Program.cs文件中的Main()方法就是入口。...在服务器上的程序调用Run() 方法,该方法运行后Web应用程序并开始侦听传入的HTTP请求。...我们在后面的视频中详细讨论CreateDefaultBuilder()中的所有方法。 而现在你只需要了解CreateDefaultBuilder()方法是用于在服务器上创建程序配置的默认值而存在。...按照微软的规则,ASP.NET Core中的启动类名为Startup。 这个类有2种方法。

    85430

    ASP.NET MVC5中View-Controller间数据的传递

    使用ASP.NET MVC做开发时,经常需要在页面(View)和控制器(Controller)之间传递数据,那么都有哪些数据传递的方式呢?...点击提交按钮后浏览器地址栏中的地址:http://localhost:57625/home/getvalue?method=querystring。程序执行结果如下: ?...{ set; get; } } 修改Action的代码如下: public void GetValue(User user) { } 然后运行程序,可以看到MVC以将表单中的数据映射为User类实例的属性值...,会看到Form Data一栏)中的值赋值到Action参数中,如果是get请求,MVC会尝试将QueryString的值赋值到Action参数中。...参考文章: 玩转Asp.net MVC 的八个扩展点 版权声明 本文为作者原创,版权归作者雪飞鸿所有。 转载必须保留文章的完整性,且在页面明显位置处标明原文链接。 如有问题, 请发送邮件和作者联系。

    2.7K10

    ASP.NET Core 错误处理(Handle Errors)

    - 依赖注入》 《理解 ASP.NET Core - 文件服务器(File Server)》 使用中间件进行错误处理 开发人员异常页 开发人员异常页用于显示未处理的请求异常的详细信息。...该异常处理程序: 可以捕获后续中间件未处理的异常 若无异常或HTTP响应已经启动(Response.HasStarted == true),则不做任何处理 不会改变URL中的路径 默认情况下,会生成类似如下的模板...异常处理程序页 除了使用lambda外,我们还可以指定一个路径,指向一个备用管道进行异常处理,这个备用管道对于MVC来说,一般是Controller中的Action,例如MVC模板默认的/Home/Error...使用过滤器进行错误处理 除了错误处理中间件外,ASP.NET Core 还提供了异常过滤器,用于错误处理。...在我们的应用中,可以同时使用错误处理中间件和异常过滤器,只有充分发挥它们各自的优势,才能处理好程序中的错误。

    2.1K20

    从头编写 asp.net core 2.0 web api 基础框架 (1)

    Configure方法是asp.net core程序用来具体指定如何处理每个http请求的, 例如我们可以让这个程序知道我使用mvc来处理http请求, 那就调用app.UseMvc()这个方法就行....用来创建 Web Api的middleware:  原来的.net使用asp.net web api 和 asp.net mvc 分别来创建 web api和mvc项目....但是 asp.net core mvc把它们整合到了一起. MVC Pattern model-view-controller 它的定义是: MVC是一种用来实现UI的架构设计模式....后边调用app.UseMvc(), 所以处理异常的middleware可以在把request交给mvc之间就处理异常, 更总要的是它还可以捕获并处理返回MVC相关代码执行中的异常....请求的网址返回404 Not Found, 因为还没有配置路由 Routing, 所以MVC不知道如何处理/映射这些URI.

    2.1K70

    .NET跨平台之旅:将示例站点从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0

    终于将“.NET跨平台之旅”的示例站点 about.cnblogs.com 从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0 ,经历了不少周折,在这篇博文中记录一下。...运行 ASP.NET 5 程序的命令是 dnx restore + dnx web,运行 ASP.NET Core 程序的命令则变为 dotnet restore + dotnet run。...用 dnx 运行 ASP.NET 5 程序,需要在 project.json 中配置相应的 command ,比如: "commands":{ "web": "Microsoft.AspNet.Hosting...接下来遇到的问题是 ASP.NET Core MVC 路由匹配问题 ,用 dotnet run 将站点运行起来后,访问任何URL都出现404错误。...这是一个让人无从下手的问题,因为从 Startup.cs 中的代码看,MVC的配置无任何问题。

    92670

    ASP.NET MVC默认配置如有跳转到指定的Area区域中的对应程序中

    今天在搭建一个基于MVC的项目,因为项目涉及到了手机和pc端,为了方便和减少二者之间的耦合我在区域(Areas)中建立了两个 程序空间,那么问题来了我想让程序默认跳转到我所指定的areas中的对应项目怎么做呢...其实理解了路由配置的原理这点其实并不是很难,请看我的代码: public static void RegisterRoutes(RouteCollection routes)...string[] { "JTSD_Web.Areas.WebAdmins.Controllers" } //指定命名空间避免相同控制器名称无法区分 (优先考虑default中配置的路由...,没有找到的话才会去寻找namesapces中的) ); } 项目图片截图:   总结:最近一段时间项目太多了总是感觉没有时间写博客,其实这都是自己在为自己偷懒再找借口...,没有什么懒不懒的,只有自己想不想做!

    50320

    ASP.NET Core 6框架揭秘实例演示:异常处理高阶用法

    图1 由注册IDeveloperPageExceptionFilter定制的错误页面 [2109]针对编译异常的处理(默认) 我们编写的ASP.NET应用会编译成程序集进行部署,为什么运行过程中还会出现...这是因为处理这种“预编译”模式,ASP.NET还支持运行时动态编译。以MVC应用为例,我们可以在运行时修改它的视图文件,这样的修改就会触发动态编译。如果修改的内容没法通过编译,就会抛出编译异常。...对于ExceptionHandlerMiddleware中间件来说,清除缓存报头也是它负责的一项重要工作。在如下所示的演示程序中,针对根路径的请求有50%的可能会抛出异常。...,我们会发现程序中设置的缓存报头Cache-Control: max-age=3600只会出现在状态码为“200 OK”的响应中。...如图5所示,针对路径“/foo”的请求返回依然是状态码为500的响应,异常处理器返回的404响应在针对路径“/bar”的请求中被正常返回了。

    1.2K20

    ASP.NET MVC 重点教程一周年版 第一回 安装,并使ASP.NET MVC页面运行起来

    从前写过一系列的ASP.NET MVC教程,ASP.NET MVC在这之后历经5个preview版本终于到今天的RC版本,而且不久就要正式推出正式版本,所以值此之际,重典也重新修正这一系列的教程,使之与时俱进...现在重开正文: 一、前ASP.NET MVC时代的故事 ASP.NET MVC是微软推出的基于ASP.NET的MVC模式网站应用程序开发框架。...在这之前Castle曾有开源的MVC框架MonoRail(http://castleproject.org/),它的最后更新是2007年9月,虽然如此,但是仍然对现存的ASP.NET MVC产生着巨大的影响...除此之外还有Microsoft.Web.Mvc是ASP.NET MVC的新特性包。 Views文件夹中Shared存放的是母版页文件,可以定义页面的公共部分。...我们点击F5运行程序,可以看到如下界面 这就是运行的结果。也就是我们建立的第一个ASP.NET MVC程序。

    68220

    ASP.NET Core之跨平台的实时性能监控

    前言 前面我们聊了一下一个应用程序 应该监控的8个关键位置. . 嗯..地址如下: 应用程序的8个关键性能指标以及测量方法 最后卖了个小关子,是关于如何监控ASP.NET Core的....这样,我们就完成了Grafana的安装配置和添加数据源 3.在ASP.NET Core中使用App Metrics 接下来就是我们的重头戏了,在ASP.NET Core中使用AppMetrics....我们随便创建一个ASP.NET Core MVC项目,如图: ?  用nuget包添加引用: 核心程序: ? 管道注入的扩展: ? ASP.NET Core MVC的扩展: ?...然后进入到Grafana的监控页面中,就可以看到如下信息: ?...比较遗憾的是本来这个是支持 .NET4.5.2以上的,但是由于关注的人比较少.所以就只出了RC的预览版.对最新版支持不完善.

    2.2K70
    领券