HttpHandler和Web用户控件之间的区别是什么?何时使用它们?

时间:2020-03-05 18:41:58  来源:igfitidea点击:

我一直在广泛使用用户控件,但从未使用HttpHandler,并且想知道我是否在做次优或者错误的操作

解决方案

回答

不幸的是,问题有点像"我应该使用三明治还是水泥搅拌机"。 HttpHandlers和User控件是完全不同的东西。

HttpHandlers用于处理HTTP请求。例如,如果要动态创建RSS提要,则可以编写一个HTTP处理程序来处理对" .rss"文件的所有请求,创建输出并将其发送回用户。

在ASPX页面中使用用户控件来封装要在许多页面中重复使用的功能单元。

如果我们成功使用了用户控件,那么我们可能不想使用HttpHandlers!

回答

甚至" Asp.Net"页面也是" HttpHandler"。

public class Page : TemplateControl, IHttpHandler

用户控件实际上位于asp.net aspx页面中。

回答

希望有一个更好的答案(可能在我完成此输入之前),但请作为一个简短的摘要。

用户控件是可以添加到页面中的东西。

可以使用HttpHandler代替页面。

回答

基本上,用户控件是服务器逻辑和UI的一部分。 HTTP处理程序只是在请求服务器上的资源时执行的一部分逻辑。例如,我们可能决定处理通过自己的处理程序发送到服务器的图像请求,并从数据库而不是文件系统提供图像。但是,在这种情况下,用户看不到任何界面,当他访问服务器上的URL时,他会收到我们在自己的处理程序中构造的响应。处理程序通常针对特定的扩展名和HTTP请求类型(POST,GET)完成。这是有关MSDN的更多信息:http://msdn.microsoft.com/zh-cn/library/ms227675(VS.80).aspx

回答

只是为了澄清这个问题。我在看汉瑟曼的帖子
http://www.hanselman.com/blog/CompositingTwoImagesIntoOneFromTheASPNETServerSide.aspx
并以为我永远不会用HttpHandler解决问题,也许只用一个简单的页面返回二进制内容即可。

这使我认为我应该将HttpHandler添加到我的开发人员工具带中。