在一个基本场景中,我有一个GridView,其中包含要下载的文件和链接按钮以下载它们,是否有任何好处可以创建自定义http处理程序来流式传输这些文件,而不是简单地从事件处理程序流式传输下载链接按钮?
修改
正如一些建议的代码重用会有利于处理程序,但在这种特殊情况下它不是问题。处理程序也更快,因为它避免了页面生命周期,但是这种轻微的性能提升可能不值得在我的特定情况下创建处理程序。
现在唯一想到的是(假设使用相同的aspx页面方法)在GridView位于UpdatePanel中的情况下是否有任何特殊考虑?
答案 0 :(得分:4)
您是否计划在应用程序中的多个位置重复使用下载功能?如果您想将下载与应用程序的其余部分松散耦合,Generic Handler
是一个很好的方法,因为您实际上是在创建服务。否则,如果您只计划从该按钮进行下载,并且只有该按钮,则可以将逻辑保留在那里。请记住,存在使应用程序变得过于复杂而非需要的事情。
答案 1 :(得分:3)
我正在使用ASHX,因为我认为它们的占用空间较小,而且由于我根本不需要UI来传输文件,所以这些对我来说都很完美。
答案 2 :(得分:3)
这完全取决于你。 ASHX没有与ASPX(没有OnLoad等)相同的页面生命周期,由于开销较低而通常被认为更快,并且没有与webform相关联的无关标记文件。
您可能还会在应用程序中考虑适当的Web服务(ASMX)。