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

详解ASP.NET Core 处理 404 Not Found

解决方案 在以前的ASP.NET MVC版本中,主要在 web.config 中处理404错误的。...您可能记得在 <customErrors 节点中配置ASP.NET管道处理404错误,以及在低版本的IIS中通过 <httpErrors 节点处理 404错误。好像有点混乱。...URL与任何路由匹配的情况。在这种情况下,如果我们无法确定用户正在访问什么,我们需要返回一个通用的未找到的页面。有两种常见的处理方法,但首先我们将讨论第二种情况。...在这里,我们知道用户正在查看产品,而不是返回通用错误,我们可以更友好的页面,返回自定义未找到产品的的页面。这仍然需要返回404状态代码,但是使用不通用的页面,同时也可以向用户显示类似或受欢迎的产品。...原文:《Handling 404 Not Found in Asp.Net Core》 翻译:Sweet Tang

1.9K20

ASP.NET Core 各版本特性简单整理

介绍 ASP.NET Core 是一个跨平台的高性能开源框架,用于生成启用云连接 Internet 的新式应用。...Core 2.2 的新增功能 新增功能: 端点路由(Endpoint Routing) 健康检查(HealthCheck) HTTP/2 IIS 进程内承载 SignalR Java 客户端 CORS...AllowSynchronousIO(同步IO),线程不足会导致应用崩溃,而同步 I/O API(例如 HttpRequest.Body.Read)是导致线程不足的常见原因 根据请求提供事件计数器 增强了端点路由...允许客户端一次调用多个Hub方法 自定义处理授权失败,使用由授权中间件调用的新 IAuthorizationMiddlewareResultHandler 接口可以更轻松地自定义处理授权失败 使用端点路由时的授权...发送 HTTP/2 PING 帧:HTTP/2 有一种机制,用于发送 PING 帧以确保空闲连接仍然正常工作

3.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

Asp.Net Web API(二)

,它映射一个包含在路径中的id字段的URI 第二个方法:通过产品编号获取一个产品信息,在控制器添加方法如下 1 public Product GetProduct(int id) 2 { 3...var item = repository.Get(id); 4 if (item == null) 5 //未找到抛出一个404的状态码异常 6...这个Asp.Net Web API框架自动把id参数转换为正确的int数据类型,如果id无效,就会抛出一个HttpResponseException异常。此异常将有框架转换成一个404错误。...默认情况下,ASP.NET Web API框架从路由获取简单的参数类型,从请求正文获取复杂的类型。 第五个方法:删除产品,在控制器添加代码如下。...上述测试我们发现我们的路由只是“api/{controler}”就成功返回了GetProducts方法中的数据,这也是ASP.NET Web API与ASP.NET MVC 之间的区别。

1.9K10

使用DOT语言和GraphvizOnline来可视化你的ASP.NETCore3.0终结点01

第1部分-使用DOT语言来可视化你的ASP.NETCore3.0终结点(本文) 第2部分-向ASP.NET Core应用程序添加终结点图 第3部分-使用ImpromptuInterface创建一个自定义的...那么,这如何应用于ASP.NET Core应用程序呢? 使用有向图来可视化ASP.NET Core终结点 ASP.NETCore中的终结点路由系统通过创建端点URL段的有向图来有效地工作。...例如,以下简单有向图表示ASP.NET Core3.0 RazorPages 默认应用程序模板中的终结点(dotnet new webapp),其中包含三个Razor页面:Index.cshtml, Error.cshtml...在上面的DOT文件中,节点被赋予顺序的整数名,1, 2, 3等,并使用端点名称进行标记。这是ASP.NET Core用于表示终结点图的格式。 对于Razor页面,路由非常简单,所以图非常明显。...然后,我展示了如何将ASP.NETCore 3.x应用程序中的端点路由表示为有向图。我描述了端点图中不同节点和边缘之间的差异,并调整了图形的显示以更好地表示这些差异。

2.2K30

.NET 6.0 中自定义接口路由

前言 在本文中,我们将讨论ASP.NET Core中的新路由。我们将了解什么是接口(endpoints)路由,它是如何工作的,它在哪里使用,以及如何创建自己的路由。...另一方面,执行的端点被映射到一个特定的路由ASP.NET Core开发人员已经熟悉这样一种路由模式: app.UseRouting(); app.UseAuthorization(); app.UseEndpoints...只有MVC和Web API端点使用更复杂的模式。Razor页面的路由定义基于实际页面的文件夹和文件结构。 在ASP.NET Core 2.2中引入端点之前,路由只是运用在MVC和Web API中。...但是,端点路由是一种更灵活的输出方式,它应该会在ASP.NET Core 3.0以后的所有版本中进行使用。...我们还可以将已经存在的终止中间件组件转换为路由接口,以配置更加灵活的路由。 总结 ASP.NET Core支持请求处理并向请求提供信息的多种方法。接口路由是一种基于URL和请求的方法提供资源。

22420

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

一、ASP.NET MVC核心机制回顾   在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件。 ?   ...context) { // 通过RouteCollection的静态方法GetRouteData获取到封装路由信息的RouteData实例 RouteData routeData = this.RouteCollection.GetRouteData...核心部分有两点,一是路由规则的匹配,二是为请求指定handler。   在路由规则的匹配中,通过设置路由数据键值对(Dictionary),并将设置好的路有数据传递给MvcHandler。...③ 路由的扩展者 : RouteExtend 在以往的ASP.NET MVC开发中,我们会在Global全局应用处理文件中为项目注册路由规则,但却不知道其实我们常用的MapRoute方法其实是一个扩展方法...(1)引入Mvc.Lib核心类库之后,需要配置一下Web.config,使UrlRoutingModule能够正常工作: <compilation debug="true

1.4K20

10个小技巧助您写出高性能的ASP.NET Core代码

始终使用ASP.NET Core的最新版本 ASP.NET Core的第一个版本是在2016年与VisualStudio 2015一起发布的,现在我们有了ASP.NET Core3.0,每一个新版本都越来越好...最新的ASP.NET Core 3.0的主要更新如下: Razor组件的改进。现在2个项目合并成单个项目模板,Razor组件支持端点路由和预渲染,Razor组件可以托管在Razor类库中。...SignalR与端点路由集成。小变化 - 现在使用端点路由定义SingalR路由。 SignalR Java客户端支持长轮询。...友情提示:在构建新的ASP.NET Core项目时,不要忘记选择最新版本。VisualStudio 2019预览版现在已经支持ASP.NET Core 3.0了。...您可以使用实时客户端-服务器通信框架,如:SignalR,来进行异步工作

4.5K31

REST API有关幂等性等11条最佳实践

您可以随时添加totalCount或hasMore字段,老客户端将继续工作。如果您的端点返回顶级数组,您将需要一个全新的端点。...规则 #8:不要使用 404 来表示“未找到” HTTP 规范规定,应使用 404 来表示未找到资源。按照字面解释,如果向不存在的 ID 提出 GET/PUT/DELETE 等请求,则应返回 404。...有很多层软件会对请求返回 404,其中有些可能是你无法控制的: 配置错误的客户端点击了错误的 URL 配置错误的代理(客户端和服务器端) 负载平衡器配置错误 服务器应用程序中的路由表配置错误 返回...由于成功执行的 DELETE 作业无论如何都会重试,因此作业必须将 "未找到 "响应视为成功。如果将 404 作为成功处理,而堆栈中的失败返回 404,作业就会从队列中删除,删除也不会传播。...糟糕的选项:提供一个端点来列出最近的交易 如果 API 未提供任何有关幂等性的显式帮助,则这是客户端开发人员的解决方法: 每次提交之前,从服务器获取最近事务的列表。

16920

【译】.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容

另请参阅ASP.NET Core 3.0 中的重大更改的完整列表。 Razor组件改进 在前面的预览中,我们介绍了Razor组件,这是一种用ASP.NET核心构建交互式客户端Web UI的新方法。...Razor类库中的Razor组件 现在可以将Razor组件添加到Razor类库中,并使用Razor组件从ASP.NET核心项目引用它们。...运行时验证 对运行时编译的支持已从.NET Core 3.0中的ASP.NET核心共享框架中删除,但现在可以通过向应用程序添加包的方式来启用它。...它旨在支持ASP.NET Core的生产力功能,如日志记录,DI,配置等,而承载任何Web依赖项。 ? 在接下来的几天里,我们将发布一些博客文章,提供更多关于使用Worker模板入门的练习。...在preview3中,我们将SignalR hubs连接到最近发布的新端点路由特性中。

22.6K10

ASP.NET Core 2.2 正式版发布

ASP.NET Core 版本的主题是在构建 Web / HTTP API 方面提高开发人员的工作效率和平台功能。 像往常一样,我们也做了一些性能改进。...我们已将这些功能作为预览版本的一部分发布,您可以通过以下链接阅读这些功能: 与流行的Open API(Swagger)库更好地集成,包括使用代码分析器进行设计时检查 引入端点路由,在MVC中提高了20%...的路由性能 使用LinkGenerator类改进URL生成并支持路由参数变换器(以及来自Scott Hanselman的文章) 用于应用程序运行状况监视的新的健康检查API IIS进程内托管支持,吞吐量提高了...400% 提高15%MVC模型验证性能 问题详细信息(RFC 7807)支持MVC以获取详细的API错误结果 在ASP.NET Core中预览HTTP / 2服务器支持 Bootstrap 4和Angular...目前预计2.2将是2.x生命周期中的最后一次non-servicing版本,因此不使用LTS版本的客户将需要在2019年下半年发布后的3个月内迁移到3.0 GA 为了保持支持。

2K20

Asp.Net Web API 2第五课——Web API路由

如果你熟悉Asp.Net MVC,Web API的路由Asp.Net MVC的路由是非常类似的。这主要的区别就是Web API使用的是HTTP方法,而不是URI路径来选择Action。...当Web API框架接收一个HTTP请求时,它会试图根据路由表中的一个路由模板来匹配其URI。如果无路由匹配,客户端会接收到一个404未找到)错误。...例如,以下URI与这个默认路由的匹配: /api/contacts /api/contacts/1 /api/products/gizmo1 然而,以下URI匹配,因为它缺少“api”片段: /contacts.../1 在路由中使用“api”的原因是为了避免与ASP.NET MVC的路由冲突。...Routing Variations路由变化  上一节描述了ASP.NET Web API基本的路由机制。本小节描述一些变化。

1.2K50

ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

MVC控制器操作简介返回类型示例 ASP.NET Core MVC控制器参数映射逻辑说明 ASP.NET Core MVC控制器参数映射/获取示例 2、本教程环境信息 软件/环境 说明 操作系统 Windows...3、控制器(Controller)的命名 Controller类的类名(ClassName)推荐以Controller为结尾(区分大小写)。...1、准备工作 在Controllers文件夹中新建ActionResultTestController.cs并继承于Controller类用于测试。...如果未找到参数对应的数据,该参数类型是可以为null的类型,则null将作为参数值传递递,否则将会引发一场。...tom&age=18 将看到以下输出: { "id": "1024", "name": [ "ken", "tom" ] } RouteData.Values[“id”]:从路由数据中获取数据

2.2K40

ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

MVC控制器操作简介返回类型示例 ASP.NET Core MVC控制器参数映射逻辑说明 ASP.NET Core MVC控制器参数映射/获取示例 2、本教程环境信息 软件/环境 说明 操作系统 Windows...3、控制器(Controller)的命名 Controller类的类名(ClassName)推荐以Controller为结尾(区分大小写)。...1、准备工作 在Controllers文件夹中新建ActionResultTestController.cs并继承于Controller类用于测试。...如果未找到参数对应的数据,该参数类型是可以为null的类型,则null将作为参数值传递递,否则将会引发一场。...tom&age=18 将看到以下输出: { "id": "1024", "name": [ "ken", "tom" ] } RouteData.Values[“id”]:从路由数据中获取数据

1.9K10

ASP.NET Core 基础知识】--前端开发--使用ASP.NET Core和JavaScript进行通信

ASP.NET Core中,我们可以使用AJAX从后端获取数据,并在前端显示。...设置后端API端点 首先,您需要在ASP.NET Core应用程序中设置一个API端点,用于处理AJAX请求并返回数据。...测试 现在,您可以运行ASP.NET Core应用程序,并访问包含AJAX请求的HTML页面。页面加载后,它将通过AJAX请求从后端API端点获取用户信息,并将其显示在页面上。...这些数据格式简单易于解析,可以被不同的客户端和服务端轻松地处理。...配置路由 您还需要在Startup.cs文件的ConfigureServices方法中配置路由,以确保API的路由正确映射到相应的控制器: public void ConfigureServices(

4100
领券