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

从ASP.NET MVC操作发送HTTP 404响应的正确方法是什么?

在ASP.NET MVC中,可以通过以下几种方法来发送HTTP 404响应:

  1. 使用HttpNotFoundResult

在控制器中返回HttpNotFoundResult类型的实例,这将返回HTTP 404响应。例如:

代码语言:csharp
复制

public ActionResult MyAction()

{

代码语言:txt
复制
   // 检查某个条件
代码语言:txt
复制
   if (someCondition)
代码语言:txt
复制
   {
代码语言:txt
复制
       return new HttpNotFoundResult("找不到请求的资源");
代码语言:txt
复制
   }
代码语言:txt
复制
   // 正常操作
代码语言:txt
复制
   return View();

}

代码语言:txt
复制
  1. 使用HttpException

在控制器中抛出HttpException异常,并设置状态代码为404。例如:

代码语言:csharp
复制

public ActionResult MyAction()

{

代码语言:txt
复制
   // 检查某个条件
代码语言:txt
复制
   if (someCondition)
代码语言:txt
复制
   {
代码语言:txt
复制
       throw new HttpException(404, "找不到请求的资源");
代码语言:txt
复制
   }
代码语言:txt
复制
   // 正常操作
代码语言:txt
复制
   return View();

}

代码语言:txt
复制
  1. 使用Response.StatusCode

在控制器中设置Response.StatusCode为404,并返回一个视图或内容。例如:

代码语言:csharp
复制

public ActionResult MyAction()

{

代码语言:txt
复制
   // 检查某个条件
代码语言:txt
复制
   if (someCondition)
代码语言:txt
复制
   {
代码语言:txt
复制
       Response.StatusCode = 404;
代码语言:txt
复制
       return View("NotFound");
代码语言:txt
复制
   }
代码语言:txt
复制
   // 正常操作
代码语言:txt
复制
   return View();

}

代码语言:txt
复制

在这些方法中,第一种方法(HttpNotFoundResult)是最推荐的方法,因为它更符合ASP.NET MVC的设计原则,并且可以更好地处理HTTP 404响应。

相关搜索:如何从python发送正确的http响应?编写返回PartialViewResult的ASP.NET MVC操作的正确方法检查http响应中是否存在变量的正确方法是什么?在http4s中发送JSON响应的正确方式是什么?在ASP.Net MVC中管理MongoDB连接的正确方法是什么?从ASP.NET MVC应用程序中的操作链接发送值在Spring MVC 3中指定HTTP"位置"响应头的首选方法是什么?从Asp.net MVC发送HTML电子邮件的最佳方式是什么?将图像从API发送到HTML的正确方法是什么?在错误情况下,从WebClient获取响应体的正确方法是什么?从AJAX中的url到发送带有响应实体的POST方法的格式是什么?ASP.NET MVC如何从@Ajax.ActionLink向控制器中的方法发送参数我发送了带有angular的http post请求,但它没有转到asp.net mvc操作并返回html布局标记。从FilePathResult ASP.net MVC发送的http响应中将二进制图像数据转换为base64字符串向asp.net identity的帐户控制器中的登录操作添加附加参数的正确方法是什么?在asp.net mvc 3中关闭应用程序时,在global.asax中调用的正确方法是什么?在ASP.NET MVC中,如何从控制器中的操作方法在新选项卡中打开静态.html页面?使用C#从Xamarin移动应用程序调用ASP.NET web app的正确方式是什么,尤其是对于post方法当我尝试通过模型列表将200多条记录从视图发送到控制器时,它在MVC中的控制器HTTP post操作中始终显示为空使用python和pyqt gui从另一个类读取字符串或将字符串发送到qtextbrowser的正确方法是什么?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Asp.Net Web API(二)

ASP.NET Web API 可以自动序列化你的模型到JSON,XML或一些其它格式,然后把已序列化的数据写入到HTTP响应消息的正文。只要客户端可以读取序列化的数据,那么它同样可以反序列这个对象。...(item); 4 return item; 5 } 请注意这个方法的两个事情:       这个方法的名字以“Post”开头,为了创建一个新产品,这个客户端将发送一个HTTP...位置:当服务端创建一个资源时,它应该在响应的Location标头中包含这个资源的URI。       ASP.NET Web API使它容易操作HTTP响应消息。...默认情况下,ASP.NET Web API框架从路由获取简单的参数类型,从请求正文获取复杂的类型。 第五个方法:删除产品,在控制器添加代码如下。...上述测试我们发现我们的路由只是“api/{controler}”就成功返回了GetProducts方法中的数据,这也是ASP.NET Web API与ASP.NET MVC 之间的区别。

1.9K10

七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——...ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 七天学会ASP.NET MVC...以上问题的解决方法 是否存在疑虑,当发送请求时,如何获取响应? 众人皆知的编程规则,程序中任何事件都是由线程执行的,请求事件也是。...Asp.net  framework 维护线程池,每次当请求发送到webserver时,会从线程池中分配空闲的线程处理此请求。这种线程被称为worker线程。...worker 线程初始化异步操作,并返回到线程池服务其他请求。异步操作可使用CLR 线程来继续执行。 存在的问题就是,CLR 线程无法返回响应,一旦它完成了异步操作,它会通知Asp.net。

3.9K100
  • 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC

    主要是因为ASP.NET Webform的性能问题。在Web应用程序中从两方面来定义性能: 1. 响应时间: 服务器响应请求的耗时 2. 带宽消耗: 同时可传输多少数据。...首先我们从Controller 控制器开始,因为Controller是MVC体系架构的核心部分。 你是否真的理解Asp.Net MVC的Controller(控制器)?...当点击Button时,一个简单的HTTP请求会发送到服务器。差别在于Customer Name,Address以及Age中输入的内容将随着请求一起发送。...注意:在Asp.Net Web Forms中默认的返回请求是HTML的,如果需要返回其他类型的请求,就必须创建HTTP 处理器,重写内容类型。这些操作在Asp.net中是很困难的。...在Asp.net MVC中是非常简单的。如果返回类型是”String“直接返回,不需要发送完整的HTML。 3. 如果从Action 方法中返回对象值会出现什么意外情况?

    3.2K60

    用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识

    统一接口: 这里分为4点, 他们是: 资源标识符(URI), 资源的操作(也就是方法Method, HTTP动词), 自描述的响应(可以认为是媒体类型Media-Type), 以及状态管理(超媒体作为应用状态的引擎...缓存: 缓存约束派生于无状态约束, 它要求从服务端返回的响应必须明确表明是可缓存的还是不可缓存的. 6. 按需编码: 这允许客户端可以从服务端访问特定的资源而无须知晓如何处理它们....方法并没有正确的使用, 结果的复杂度不算太高....例如这两个查询: POST http://host/api/authors POST http://host/api/authors/{id} 2级, 动词: 正确使用了HTTP动词, 状态码也正确的使用了...过滤器和中间件的区别:中间件是应用程序级别的,它可以处理每个发送过来的请求;而过滤器是针对MVC的,它只会处理发往MVC的请求。

    1.7K00

    入门:添加一个支持获取单一资源以及支持POST,PUT和DELETE方法

    WCF Web API支持多个宿主环境:自宿主(windows服务或者控制台)和IIS宿主(asp.net webform/mvc)。...这个入门文章主要演示在ASP.NET MVC3网站宿主,主要演示如何在一个Web API上允许更新: 如何检索一个特定项的资源 如何在API上启用HTTP POST, PUT和DELETE方法 如何通过...>8New Person2 6、从一个简单的HTML表单发送内容 Web API包含从HTML...GET,然后执行,返回状态码为404 HTTP/1.1 404 Not Found Server: ASP.NET Development Server/10.0.0.0 Date: Tue...DELETE,然后执行,也返回状态码404 总结:在这篇入门文章里我们学习了以下内容: 如何添加检索一个单一的资源 如何设置一个方法返回一个404  处理异常情况下的HTTP 响应。

    1.4K70

    在ASP.NET Core使用Middleware模拟Custom Error Page功能

    一、使用场景 在传统的ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAttribute...有时候在Error视图中也会发生错误,这时ASP.NET/MVC将会显示其默认的错误页面(黄底红字),为了避免这种情况的出现,我们都是在Web.config文件的customErrors节中来自定义错误页面...> 二、.NET Core实现   既然想用ASP.NET Core中的中间件模拟Custom Error Page功能,那首先我从配置下手。...": { "401": "/Error/Http401Page", "403": "/Error/Http403Page", "404": "/Error/Http404Page", "...当然我们最后,还要为这个中间件添加一个扩展方法,ASP.NET Core中为 IApplictionBuilder创建了好多的扩展方法,其实也好比它的名子一样,它就应该是一个建造者模式。

    1.3K30

    《ASP.NET Core 6框架揭秘》勘误

    P47第3段 原文:首先 ASP.NET Core MVC 框架在处理请求的过程中会根据路由解析生成参数,得到目标 Controller 的类型,然后自动创建对应的实例并指定对应的 Action 方法...这个模拟中间件具有与 StaticFileMiddleware 相同的功能,它能够将目标文件的内容采用正确的媒体类型响应给客户端,同时能够处理条件请求和区间请求。...这个模拟中间件具有与 StaticFileMiddleware 相同的功能,它能够将目标文件的内容采用正确的媒体类型响应给客户端,同时能够处理条件请求和区间请求。...如果状态码为 404 的响应是最终的异常处理结果,则必须将 ExceptionHandlerOptions 配置选项的 AllowStatusCode404Response 属性设置为 True。...如果状态码为 404 的响应是最终的异常处理结果,则必须将 ExceptionHandlerMiddleware配置选项的 AllowStatusCode404Response 属性设置为 True。

    1.6K20

    ASP.NET Core 入门教程 4、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控制器参数映射/获取示例 2、本教程环境信息 软件/环境 说明 操作系统 Windows...Core MVC 控制器操作简介 1、ASP.NET Core MVC 控制器操作概述 控制器(Controller)操作(Action)就是控制器接收到请求后实际用与处理请求的程序方法/函数。...HTTP请求数据(QueryString、FormData、Header等)找到执行该方法所需要的参数的值。...另外,Action方法也可以不定义参数,手动从RouteData或HTTP请求数据(QueryString、FormData、Header等)获取对应的参数值。

    2.3K40

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

    在ASP.NET MVC的实现中,是将请求交给了MvcHandler这个类,通过执行其ProcessRequest方法来进行后续的处理。 ?  ...在ASP.NET MVC中,会调用MvcHandler的ProcessRequest()方法,此方法会激活具体请求的Controller类对象,触发Action方法,返回ActionResult实例。...从第一部分我们可以知道,ASP.NET MVC的入口在于UrlRoutingModule,因此这里我们便模拟实现了一个UrlRoutingModule. /// //...在以往的ASP.NET MVC开发中,我们在Action方法的编写中,总会看到它们的返回类型都是以ActionResult为基类的各种Result类型。...③ 路由的扩展者 : RouteExtend 在以往的ASP.NET MVC开发中,我们会在Global全局应用处理文件中为项目注册路由规则,但却不知道其实我们常用的MapRoute方法其实是一个扩展方法

    1.4K20

    ASP.NET Core 入门教程 4、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控制器参数映射/获取示例 2、本教程环境信息 软件/环境 说明 操作系统 Windows...Core MVC 控制器操作简介 1、ASP.NET Core MVC 控制器操作概述 控制器(Controller)操作(Action)就是控制器接收到请求后实际用与处理请求的程序方法/函数。...HTTP请求数据(QueryString、FormData、Header等)找到执行该方法所需要的参数的值。...另外,Action方法也可以不定义参数,手动从RouteData或HTTP请求数据(QueryString、FormData、Header等)获取对应的参数值。

    1.9K10

    【asp.net core 系列】2 控制器与路由的恩怨情仇

    前言 在上一篇文章中,我们初步介绍了asp.net core,以及如何创建一个mvc项目。从这一篇开始,我将为大家展示asp.net core 的各种内容,并且尝试带领大家来挖掘其中的内在逻辑。...当然,那是以后的事情。这一篇将通过自定义一个控制器来为大家介绍asp.net core mvc 中控制器和路由的相关知识。 ? 1....路由 在第一节中,我们介绍了一下asp.net core mvc如何寻找控制器和Action,那这一节将介绍程序如何从请求链接中解析出控制器和Action的名称,也就是路由映射。...路由(Routing)负责匹配传入的HTTP请求,然后将这些请求发送给应用的可执行终结点。终结点是应用的可执行请求处理代码单元,也就是我们控制器里的方法(Action)。...,但是我们在访问: http://localhost:5006/DemoTest 仍然能得到响应,而且控制器被解析为Demo。

    91020

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

    需要注意的是,不要随意对Error添加[HttpGet]、[HttpPost]等限定Http请求方法的特性。一旦你加上了[HttpGet],那么该方法只能处理Get请求的异常。...Http错误状态码处理 默认情况下,当ASP.NET Core遇到没有正文的400-599Http错误状态码时,不会为其提供页面,而是返回状态码和空响应正文。...UseStatusCodePagesWithRedirects 该扩展方法,内部实际上是通过调用UseStatusCodePages并传入lambda进行实现的,该方法: 接收一个Http资源定位字符串...同样的,会有一个占位符{0},用于填充Http状态码 向客户端发送Http状态码302-已找到 然后将客户端重定向到指定的终结点,在该终结点中,可以针对不同错误状态码分别进行处理 app.UseStatusCodePagesWithRedirects...code=404,而且,响应状态码也变了,变成了200Ok。

    2.1K20

    Asp.net MVC 之 Contorllers(二)

    [译]Asp.net MVC 之 Contorllers(一) URL 路由HTTP模块通过获取 URL,然后调用合适的执行方法处理进来的请求。...如果匹配到,请求将转到 ASP.NET MVC 的领地,再调用一个控制器类进行处理。如果没有匹配到,请求将被标准的 ASP.NET 运行时以最合适的方式处理,很可能的结果就是返回一个404。...最后,只有符合预定义的 URL 格式(也就是路由)的请求,才被允许享用 ASP.NET MVC 运行时的服务。所有这些请求都被路由到一个共同的序实例化控制器类的HTTP处理程,并调用其中定义的方法。...接下来,控制器方法将选择一个视图组件,生成实际的响应。...例如,将前面的代码添加到一个 ASP.NET MVC 应用程序的 Global.asax.cs 文件,然后运行,当访问default.aspx页面时,会出现一个 HTTP 404 错误。

    1.9K60

    ASP.NET MVC学习笔记02控制器和路由

    上一篇大致说了下ASP.NET MVC到底是什么,以及MVC的思想,下面我们就继续依照官方文档,从MVC的C开始入手,也就是控制器。...Controllers: 处理浏览器的请求,取得数据模型,然后指定要响应浏览器请求的视图模板。 控制器 这些概念说来说去似乎越绕越复杂,闲话少叙,从第一个控制器开始。...ASP.NET MVC会调用不同的控制器类(和其内部不同的操作方法)这取决于传入URL。 所使用的ASP.NET MVC的默认URL路由逻辑使用这样的格式来判定哪些代码以便调用。...Routing来告诉MVC如何定位到正确的Controller和Action。...请注意,我们只需要浏览 /HelloWorld路径,默认情况下会调用Index方法。如果没 有明确的指定操作方法,Index方法会默认的被控制器类调用。

    1.5K40
    领券