我们有一个应用程序,它对某些较旧的 Web 应用程序页面使用 Web 表单,但也包含用于某些较新功能的 MVC 功能。我们对下载必须在服务器上处理的文件有一些新要求(不是直接链接到 Web 服务器上的静态文件)。
我还没有看到任何内容表明是否有理由应该使用 ASHX 处理程序,而不仅仅是使用 MVC Controller 并在响应对象上进行操作并在操作方法末尾返回 EmptyResult()。
MVC 是否有最佳实践?是否应该将 ASHX 处理程序留给 WebForms,或者与使用 MVC 实现此类文件下载功能相比,它们是否有一些优势?
最佳答案
HttpHandler
的性能更好,因为它比 MVC 操作更加裸机(只是一些额外的步骤,但仍然如此)。
除此之外,我认为您没有理由出于性能原因选择其中之一。 MVC 有一些您可能想要使用的好功能,例如缓存和授权属性。
如果您选择使用 MVC,请使用专门为文件处理构建的结果,例如 FileStreamResult
或FileContentResult
.
关于下载文件的 ASP.NET 处理程序 (ashx) 与 MVC Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26531043/