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

ASP.NET MVC - MapRoute与routes.Add(和404s)

您好!您的问题是关于ASP.NET MVC中的MapRoute和routes.Add方法,以及它们如何处理404错误。

在ASP.NET MVC中,MapRoute和routes.Add方法用于定义URL路由。MapRoute方法用于将URL模式与控制器操作进行映射,而routes.Add方法用于将URL模式与路由名称进行映射。这两个方法都可以用于处理404错误,即当用户请求不存在的URL时,返回一个404错误页面。

要处理404错误,您可以在Global.asax文件中的Application_Error方法中添加以下代码:

代码语言:csharp
复制
protected void Application_Error(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError();
    if (ex is HttpException && ((HttpException)ex).GetHttpCode() == 404)
    {
        Server.ClearError();
        Response.Redirect("~/Error/NotFound");
    }
}

这段代码将捕获404错误,并将用户重定向到一个自定义的错误页面。您可以根据需要修改重定向的URL。

总之,MapRoute和routes.Add方法可以帮助您定义URL路由,并且可以与404错误处理结合使用。如果您需要更多关于ASP.NET MVC或其他云计算相关技术的信息,请随时提问。

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

相关·内容

ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门

一、前言 1、本文主要内容 ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC带路径参数的路由示例 ASP.NET Core MVC固定前/后缀的路由示例 ASP.NET...Core MVC正则表达式匹配路由示例 ASP.NET Core MVC路由约束自定义路由约束 ASP.NET Core MVC RouteAttribute绑定式路由使用介绍 2、本教程环境信息...MVC 路由简介 1、ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC路由的作用就是将应用接收到请求转发到对应的控制器去处理。...2、绑定式路由配置 在项目Controllers目中新建TestController.cs继承Controller 并配置Action路由 using System; using Microsoft.AspNetCore.Mvc...应用 下一篇:ASP.NET Core 应用发布部署指南/教程

1.5K30

ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门

一、前言 1、本文主要内容 ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC带路径参数的路由示例 ASP.NET Core MVC固定前/后缀的路由示例 ASP.NET...Core MVC正则表达式匹配路由示例 ASP.NET Core MVC路由约束自定义路由约束 ASP.NET Core MVC RouteAttribute绑定式路由使用介绍 2、本教程环境信息...MVC 路由简介 1、ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC路由的作用就是将应用接收到请求转发到对应的控制器去处理。...不过没关系,ASP.NET Core MVC也提供了RouteAttribute可以让我们在Controller或者Action上直接指定路由模板。...2、绑定式路由配置 在项目Controllers目中新建TestController.cs继承Controller 并配置Action路由 using System; using Microsoft.AspNetCore.Mvc

1.1K30

ASP.NET MVC路由扩展:路由映射

ASP.NET的路由系统旨在通过注册URL模板物理文件之间的映射进而实现请求地址文件路径之间的分离,但是对于ASP.NET MVC应用来说,请求的目标不再是一个具体的物理文件,而是定义在某个Controller...MVC的路由注册具体的物理文件无关,所以MapRoute方法中并没有一个表示文件路径的physicalFile参数。...二、 实例演示:注册路由映射查看路由信息 ASP.NET MVC通过定义在RouteCollectionExtensions中的扩展方法MapRoute进行路由映射,为了让读者对此有一个深刻的认识,我们来进行一个简单的实例演示...ASP.NET MVC对AreaRegistration类型列表的缓存是基于文件的。...ASP.NET MVC路由展:路由映射 ASP.NET MVC路由扩展:链接URL的生成

1.3K100

ASP.NET MVC Controller激活系统详解:总体设计

如下面的代码片断所示,除了直接继承ControllerBase之外,Controller类型还显式实现了IControllerIAsyncController接口,以及代表ASP.NET MVC 四大筛选器...由于具有多个Controller注册的路由规则相匹配导致ASP.NET MVC的Controller激活系统无法确定目标哪个类型的Controller应该被选用,所以会出现如下图所示的错误。...[关于ASP.NET MVC路由,在我的文章《ASP.NET MVC路由扩展:路由映射》中具有详细的介绍] 在解析Controller真实类型的过程中,会先通过RouteData包含的命名空间来解析Controller...四、Controller的激活URL路由 ASP.NET路由系统是HTTP请求抵达服务端的第一道屏障,它根据注册的路由规则对拦截的请求进行匹配并解析包含目标ControllerAction名称的路由信息...ASP.NET MVC Controller激活系统详解:总体设计 ASP.NET MVC Controller激活系统详解:默认实现 ASP.NET MVC Controller激活系统详解:IoC

1.7K60

自己动手写一个简单的MVC框架(第二版)

一、ASP.NET MVC核心机制回顾   在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件。 ?   ...③ 路由的扩展者 : RouteExtend 在以往的ASP.NET MVC开发中,我们会在Global全局应用处理文件中为项目注册路由规则,但却不知道其实我们常用的MapRoute方法其实是一个扩展方法...(3)View   在ASP.NET MVC中提供了aspxRazor等模板引擎,这里我偷了懒,直接借助了NVelocity模板引擎来实现。...这是一个ASP.NET 空Web应用项目搭建起来的MVC Web应用项目,它移除了自带的所有引用项目,仅仅保留了SystemSystem.Web,做到了尽可能地“纯净”。...通过引入Mvc.Lib核心类库,建立Controller、ModelView文件夹以及对应的类HTML来实现MVC模式。

1.4K20

Asp.net dynamic Data web Site 之二创建第一个Web Site

Asp.net dynamic Data web Site 之二创建第一个Web Site 本专题介绍一个ASP.NET动态数据的网站的布局,其中包括这些文件默认情况下创建相关文件夹和文件。...图表 3 文件夹和文件 下表介绍了在ASP.NET动态数据网站在根目录级创建的文件和文件夹。...文件和文件夹 描述 DynamicData 包含显示操作数据的页面自定义控件,页面,子控件如字段控件 Default.aspx 一个默认首页面显示所有注册的数据模型及表名。...Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }), Model = model }); //routes.Add...asp.net mvc中有比较详细的介绍 routes.Add(new DynamicDataRoute("{table}/{action}.aspx") { Constraints = new RouteValueDictionary

1.4K60

ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器路由机制学习

Razor在减少代码冗余、增强代码可读性Visual Studio智能感知方面,都有着突出的优势。Razor一经推出就深受广大ASP.Net开发者的喜爱。...在ASP.Net MVC网站默认实例中使用的是三个参数的MapRoute方法: routes.MapRoute( name: "Default", url: "{controller...3.5 URL路由调试   在ASP.Net MVC中,默认是不允许对路由规则进行调试的。但是,我们可以通过使用RouteDebug来辅助进行调试。   ...参考资料   (1)马伦,《ASP.Net MVC视频教程》,http://bbs.itcast.cn/thread-26722-1-1.html   (2)葡萄城控件技术团队,《ASP.NET MVC...5—控制器》,http://www.cnblogs.com/powertoolsteam/p/aspnet-mvc5-controller.html   (3)李亮,《ASP.Net MVC3 Controller

1.7K30

《ASP.ENT Core RESTful API 开发实战》(第3章)-- 读书笔记(中)

第 3 章 ASP.NET Core 核心特性 3.3 依赖注入 通常情况下,应用程序由多个组件构成,而组件组件之间往往存在依赖关系 当我们需要获取数据时,通常的做法是实例化依赖的类,然后调用类里面的方法...在 ASP.NET Core MVC 框架中,除了 Controller、Model Action 外,它还包括路由、模型绑定、模型验证过滤器等功能 路由的主要功能是根据预先配置的路由信息对客户端传来的请求进行路由映射...,映射完成后,再将请求传给对应的路由处理器处理 对于 ASP.NET Core MVC,定义路由的方法有以下两种: 基于约定的路由 特性路由 基于约定的路由需要在 Startup 类中指明,具体来说,应该在配置...MVC 中间件时来设置路由约定 app.UseMvc(routes => { routes.MapRoute("default",template: "{controller}/{action...:中间件很相似,在 ASP.NET Core MVC 中,它们能够在某些功能的前后执行,由此形成一个管道 ASP.NET Core MVC 提供了以下5种类型的过滤器: Authorization Resource

1.1K10

MVC项目开发中那些用到的知识点(Asp.Net Mvc3.0 Areas)

前言    我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等。...因此,在一些场景下,如果能把某功能相关的文件分离到一个独立的项目中是非常有用的。Asp.Net MVC提供了Areas(区域)的概念达到这一目的。   ...Web应用通常会有前台(面向用户)后台(面向管理员)两部分,我们希望以/locahost/Admin开始的URL都为后台管理地址, routes.MapRoute( //Default Route...参数默认值 new string[] { "MvcArea.Controllers" } ); } 总结   这样,我们就可以把所有后台管理相关的...这样,每一个项目可以独立开发,测试发布。至于进而的优化,我会抽时间继续补上的。 示例代码

72310

Asp.net MVC 之 Contorllers(二)

然而,在 ASP.NET MVC 中,URL 路由是把传入的 URL 映射到 Controller 类 Action 方法为目的的。...注 最初开发 URL 路由模块的目的是作为一个 ASP.NET MVC 组件,现在已经是 ASP.NET 平台的一部分,只是 ASP.NET MVC ASP.NET Web Forms 提供的 API...下图给出了在 ASP.NET MVC ASP.NET Web Forms 应用程序中涉及相关的各个步骤如何工作的总体图。 ? URL路由模块会拦截无法由IIS服务处理的应用程序的任何请求。...可以使用 ASP.NET MVC 应用程序中的 REST 方式,ASP.NET MVC 面向他是松耦合的,ASP.NET MVC 承认他的概念,如资源行为,我们可以随意使用自己的语法来表达实现资源行动行为...任何时候的请求,URL都是路由注册的模板中相匹配的。如果匹配,就可以确定请求的相应的控制器action方法。如果没匹配,该请求将被拒绝,结果通常是404 消息。

1.9K60

ASP.NET MVC 6路由技术

在我们跳转到自定义路由之前,我们必须先了解下MVC6基于MVC5的基本变化。 ASP.NET MVC6将所有必要的启动服务,定义配置的应用程序依赖关系放在一个Startup.cs文件中。...Startup.cs文件替换了放置中间件配置逻辑的global.asax的所有功能。 正如我们所知的那样,路由的操作使用Routes.MapRoute方法进行管理。...在ASP.NET MVC 6的Routes.MapRoute中,Startup.cs文件中不在包含这个方法,取而代之的是很少的代码。...你同样还会注意到没有专门的配置文件来处理RouteConfig.cs,WebApiConfig.cs或其他中间处理程序,这些中间处理程序是早期的ASP.NET版本MVC模式项目模板附带的。...Startup.cs文件具有services.AddMvc()services.UseMvc()方法来处理路由操作。 我们可以看看代码中UseMvc()方法的实现。

92060
领券