下载文件的 ASP.NET 处理程序 (ashx) 与 MVC Controller 操作

标签 asp.net asp.net-mvc ashx

我们有一个应用程序,它对某些较旧的 Web 应用程序页面使用 Web 表单,但也包含用于某些较新功能的 MVC 功能。我们对下载必须在服务器上处理的文件有一些新要求(不是直接链接到 Web 服务器上的静态文件)。

我还没有看到任何内容表明是否有理由应该使用 ASHX 处理程序,而不仅仅是使用 MVC Controller 并在响应对象上进行操作并在操作方法末尾返回 EmptyResult()。

MVC 是否有最佳实践?是否应该将 ASHX 处理程序留给 WebForms,或者与使用 MVC 实现此类文件下载功能相比,它们是否有一些优势?

最佳答案

HttpHandler 的性能更好,因为它比 MVC 操作更加裸机(只是一些额外的步骤,但仍然如此)。

除此之外,我认为您没有理由出于性能原因选择其中之一。 MVC 有一些您可能想要使用的好功能,例如缓存和授权属性。

如果您选择使用 MVC,请使用专门为文件处理构建的结果,例如 FileStreamResultFileContentResult .

关于下载文件的 ASP.NET 处理程序 (ashx) 与 MVC Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26531043/

相关文章:

asp.net - asp.net 中的 .ashx 文件?

javascript - 获取包含日期的文本框的值?

c# - 解析 ASP.NET 5 的动态 IoC Controller

c# - 如何从 ashx 或 web 服务呈现用户控件?

c# - 使用 ASP.NET MVC 中的自定义登录页面进行 Intranet Windows 身份验证

javascript - 如何将参数数组传递到 Kendo 网格数据源?

c# - 删除上传的文件,如果它没有移动到另一个文件夹

ASP.NET VNext 类库 System.Runtime.Serialization

c# - 通过 Entity Framework Core 将列表传递给 View

javascript - 如何在打字时设置文本框格式?