首页
学习
活动
专区
工具
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 在创建项目的时候在ViewsShared目录下有一个错误处理页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/ 将这两文章内容整合

83090

ASP.NET MVC5Model验证

Model验证是ASP.NET MVC重要部分,它主要用于判断输入数据类型及值是否符合我们设定规则,这篇文章就介绍下ASP.NET MVCModel验证几种方式。...注意,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(也可以是其它版本...引用文件之后,运行程序,然后查看页面源代码,可以看到forminput标签多出了 data-val 属性以及其它和数据注解相关属性。 对于验证失败信息,我们需要对用户进行相应提醒。

1.4K20

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

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

2K20

《从零开始学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种方法。

82630

ASP.NET MVC5View-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

.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配置无任何问题。

88770

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

Configure方法是asp.net core程序用来具体指定如何处理每个http请求, 例如我们可以让这个程序知道我使用mvc来处理http请求, 那就调用app.UseMvc()这个方法就行....用来创建 Web Apimiddleware:  原来.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.

2K70

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

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

63120

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.1K20

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

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

44120

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预览版.对最新版支持不完善.

2K70
领券