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

如何在ASP.NET MVC RC1中使用FileResult返回304状态

在ASP.NET MVC RC1中使用FileResult返回304状态,可以通过以下步骤实现:

  1. 首先,在控制器中创建一个方法,该方法将返回FileResult类型的数据。
代码语言:csharp
复制
public FileResult GetFile()
{
    // 获取文件的路径
    string filePath = Server.MapPath("~/Content/file.txt");

    // 创建一个FileStream对象,用于读取文件内容
    FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);

    // 创建一个FileContentResult对象,用于返回文件内容
    FileContentResult fileContentResult = new FileContentResult(new byte[fileStream.Length], "text/plain");

    // 设置响应头信息
    Response.Cache.SetCacheability(HttpCacheability.Public);
    Response.Cache.SetLastModified(DateTime.Now);
    Response.Cache.SetETag(DateTime.Now.ToString());

    // 检查是否存在缓存,如果存在缓存,则返回304状态
    if (Request.Headers["If-None-Match"] == DateTime.Now.ToString())
    {
        Response.StatusCode = 304;
        return null;
    }

    // 返回文件内容
    return fileContentResult;
}
  1. 在上述代码中,我们首先获取文件的路径,然后创建一个FileStream对象,用于读取文件内容。接着,我们创建一个FileContentResult对象,用于返回文件内容。
  2. 接下来,我们设置响应头信息,包括缓存策略、最后修改时间和ETag标识符。
  3. 最后,我们检查请求头中的If-None-Match字段是否与ETag标识符相同,如果相同,则说明存在缓存,我们可以返回304状态。否则,我们返回文件内容。

通过以上步骤,我们可以在ASP.NET MVC RC1中使用FileResult返回304状态。

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

相关·内容

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

一、前言 1、本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core.../item/mvc 二、ASP.NET Core MVC 控制器简介 1、ASP.NET Core MVC 控制器概述 在MVC Web框架,路由模块会对接收到的请求进行匹配并转交由对应的控制器(Controller...为了搭配视图引擎使用ASP.NET Core MVC 框架内置了 Microsoft.AspNetCore.Mvc.Controller类,提供了一些视图引擎需要的特性。...返回对象的JSON序列化结果 FileResult File() 返回要写入响应的二进制输出 RedirectResult Redirect() 重定向到指定的Url RedirectToRouteResult...使用示例 定义返回FileResult的Action public IActionResult FileTest() { var bytes = Encoding.Default.GetBytes

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

    一、前言 1、本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core.../item/mvc 二、ASP.NET Core MVC 控制器简介 1、ASP.NET Core MVC 控制器概述 在MVC Web框架,路由模块会对接收到的请求进行匹配并转交由对应的控制器(Controller...为了搭配视图引擎使用ASP.NET Core MVC 框架内置了 Microsoft.AspNetCore.Mvc.Controller类,提供了一些视图引擎需要的特性。...返回对象的JSON序列化结果 FileResult File() 返回要写入响应的二进制输出 RedirectResult Redirect() 重定向到指定的Url RedirectToRouteResult...使用示例 定义返回FileResult的Action public IActionResult FileTest() { var bytes = Encoding.Default.GetBytes

    2.3K40

    小范笔记:ASP.NET Core API 基础知识与Axios前端提交数据

    WebApi 应用 首先创建一个 Asp.Net Core MVC 应用,然后在 Controllers 目录添加一个 API 控制器 DefaultController.cs。...注意:本文全部使用 [HttpPost] ;全局使用 JsonResult 作为返回类型。 二....下面使用这些属性来指定 Controller 或 Action 接受的 HTTP 方法、返回的数据类型或状态代码。...1, 查询备忘表 Microsoft.AspNetCore.Mvc 命名空间中,包含控制 MVC 的各种操作方法和类型,笔者从命名空间中抽出与 MVC 或 API 返回类型有关的类型,生成表格: 类型...API 里的 返回类型需要实例化, new 一下; MVC 里的返回类型,“不需要实例化”。 当然,有些例如 FileResult 是抽象类,不能被实例化。

    5.6K00

    Linux上访问SQL Server数据库

    .NET跨平台之旅:升级至ASP.NET 5 RC1,Linux上访问SQL Server数据库 今天微软正式发布了ASP.NET 5 RC1(详见Announcing ASP.NET 5 Release...紧跟这次RC1的发布,我们成功地将运行在Linux上的示例站点(http://about.cnblogs.com)升级到了ASP.NET 5 RC1,并且增加了数据库访问功能——基于Entity Framework...7 RC1访问SQL Server数据库。...后端Web服务器用的是kestrel,前端Web服务器用的是阿里云负载均衡,使用中发现一个很奇怪的问题:浏览器直接访问kestrel,速度飞快;而访问阿里云负载均衡,页面虽然显示出来,但页面一直牌加载状态...如果kestrel稳定,我们就开始将一些实际使用的小站点迁移至ASP.NET 5,并部署在Linux服务器上。 下面分享一下这个示例ASP.NET 5站点的主要代码。

    1.6K50

    ASP.NET MVC 1.0 RC 那些事

    Scott Gu宣布了ASP.NET MVC 1.0 RC的发布, Scott Gu在blog上写了一篇ASP.NET MVC 1.0 Release Candidate Now Available,...AJAX 的改进 FileUpload / "Download" 改进,例如 FileResult映射到 Fileupload Visual Studio T4 模板,这就意味着自己可以去定制...MVC模板,顺便在这里介绍一个T4:Visual Studio 2008包含了一个文本模板转换工具箱,又称为T4,是领域特定语言工具的一部分,并可用于基于文本模板的方式来生成代码。...如果我想保留ASP.NET MVC 1.0 beta,想直接使用asp.net mvc 1.0 rc的二进制版本,可以通过命令行提取MSI文件的内容,命令如下: msiexec /a AspNetMVCRC-setup.msi...等待几秒钟后就可以在C:\Program Files\Microsoft ASP.NET\ASP.NET MVC RC 目录下获取到二进制版本,而不会影响到你的Visual Studio模板 和GAC

    64290

    了解ASP.NET MVC几种ActionResult的本质:JavaScriptResult & JsonResult

    本篇文章着重介绍在进行Ajax调用中经常使用的两个ActionResult,即JavaScriptResult和JsonResult。[本文已经同步到《How ASP.NET MVC Works?》...在通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用定义一个ShoppingCart类表示购物车。...但是对于后台程序来说,数据却是通过一个基于某种CLR类型的对象来承载,当客户端调用某个Action方法并希望以JSON的格式返回请求的数据时,ASP.NET MVC需要有一种机制将CLR对象转换成JSON...MVC几种ActionResult的本质:EmptyResult & ContentResult 了解ASP.NET MVC几种ActionResult的本质:FileResult 了解ASP.NET...MVC几种ActionResult的本质:JavaScriptResult & JsonResult 了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult

    1.7K80

    快速入门系列--MVC--06视图

    到了View的呈现板块,感觉ASP.NET MVC的学习也进入了尾声,还是比较开心的,毕竟也有了不小收获。这部分内容相对比较简单,因为之前还专门学习过如何结合HTML5与MVC框架。...JsonResult 提供对象和Json字符串的序列化与返序列化 HttpStatusCodeResult 方便返回Http状态码 RedirectResult RedirectToRouteResult...简单请款下推荐使用Dynamic的ViewBag,复杂推荐强类型的ViewModel,在使用强类型时,为了方便,推荐将其加入配置文件,如下所示。...布局,使用在Layout页面中使用@RenderBody可以为主体占位,也可以用的@RenderSection("Footer")为Footer占位,这时需要在页面通过@section Footer{...ASP.NET MVC4框架揭秘[M]. 上海:电子工业出版社, 2012. 390-444 [2](美)加洛韦. ASP.NET MVC 4高级编程(第4版)[M].

    1.2K100

    了解ASP.NET MVC几种ActionResult的本质:EmptyResult & ContentResult

    本篇文章着重介绍在进行Ajax调用中经常使用的两个ActionResult,即JavaScriptResult和JsonResult。[本文已经同步到《How ASP.NET MVC Works?》...在通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用定义一个ShoppingCart类表示购物车。...但是对于后台程序来说,数据却是通过一个基于某种CLR类型的对象来承载,当客户端调用某个Action方法并希望以JSON的格式返回请求的数据时,ASP.NET MVC需要有一种机制将CLR对象转换成JSON...MVC几种ActionResult的本质:EmptyResult & ContentResult 了解ASP.NET MVC几种ActionResult的本质:FileResult 了解ASP.NET...MVC几种ActionResult的本质:JavaScriptResult & JsonResult 了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult

    1.7K50

    .NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core的重要改进!

    开始 要开始使用.NET 8 RC1ASP.NET Core,请安装.NET 8 SDK[4]。...服务器和中间件 默认情况下禁用HTTP/3 Kestrel默认情况下不再启用HTTP/3。这个更改将Kestrel的HTTP协议行为恢复到.NET 7状态,但不同于所有.NET 8预览版本。...API编写 在最小API、MVC和SignalR中支持键入服务 在.NET 8预览7,我们引入了对DI中键入服务的支持[9]。...从.NET 8 RC1开始,可以在使用最小API、基于控制器的API和SignalR中使用键入服务。...已知问题 ASP.NET Redis基于输出缓存 在ASP.NET,基于Redis的输出缓存存在已知的回归问题(在.NET 8首次引入,在Preview 6宣布);此功能在RC1将无法工作。

    32940

    ASP.NET Core 2.1 : 十四.静态文件与访问授权、防盗链

    本文主要通过解读一下ASP.NET Core对于静态文件的处理方式的相关源码,来看一下为什么是wwwroot文件夹,如何修改或新增一个静态文件夹,为什么新增的文件夹名字不会被当做controller处理...这里是将静态文件的处理中间件作为了“处理管道”的一部分, 并且这个中间件是写在 app.UseMvc 之前, 所以当一个请求进来之后, 会先判断是否为静态文件的请求,如果是,则在此做了请求处理,这时候请求会发生短路,不会进入后面的mvc...logger.LogPathNotModified(fileContext.SubPath); await fileContext.SendStatusAsync(Constants.Status304NotModified...AuthorizeFilter] public class FileController : Controller { [HttpGet("{name}")] public FileResult...).ToLower().Equals("file")) { bool isAllow = false;//在此进行一系列访问权限验证,如果失败,返回一个默认图片

    1.3K20

    细说ASP.NET Core静态文件的缓存方式

    本文指在这三个方面,在ASP.NET Core静态文件的实现过程和使用方法进行阐述。当然也可以考虑使用反向代理的方式(例如IIS或Nginx),这些不是本文讨论的内容。   ...假如页面没有错误返回都是正确那么就是返回文件数据和Http Status为200 -OK的状态。 ?  ...状态的请求;而且在这个例子里浏览器会自动缓存这些文件24小时,但是在此期间并不会返回404状态。   ...200状态给浏览器,如果没有变化则返回304状态给浏览器端。   ...我们在使用CDN时,因为还要进行开发任务,一般我们都要有两套地址,一套是CDN上的文件地址,一套是本地调试开发用的地址。ASP.NET Core也为我们提供了Tag Helper来解决这样的问题。

    2.3K20
    领券