【发布时间】:2010-09-06 12:50:03
【问题描述】:
我一直在广泛使用用户控件,但从未使用过 HttpHandler,我想知道我做的事情是不是最理想的还是错误的
【问题讨论】:
标签: asp.net
我一直在广泛使用用户控件,但从未使用过 HttpHandler,我想知道我做的事情是不是最理想的还是错误的
【问题讨论】:
标签: asp.net
很遗憾,您的问题有点像“我应该使用三明治还是水泥搅拌机”。 HttpHandlers 和用户控件是完全不同的东西。
HttpHandlers 用于处理 HTTP 请求。例如,如果您想动态创建一个 RSS 提要,您可以编写一个 HTTP 处理程序来处理对“.rss”文件的所有请求,创建输出并将其发送回用户。
在 ASPX 页面中使用用户控件来封装您希望在多个页面中重复使用的功能单元。
如果您成功使用用户控件,您可能不想使用 HttpHandlers!
【讨论】:
基本上,用户控件是一段服务器逻辑和 UI。 HTTP 处理程序只是在请求服务器上的资源时执行的一段逻辑。例如,您可能决定处理通过您自己的处理程序发送到服务器的图像请求,并从数据库而不是文件系统提供图像。但是,在这种情况下,用户看不到任何界面,当他访问您服务器上的 URL 时,他会得到您在自己的处理程序中构建的响应。处理程序通常用于特定的扩展和 HTTP 请求类型(POST、GET)。以下是 MSDN 上的更多信息:http://msdn.microsoft.com/en-us/library/ms227675(VS.80).aspx
【讨论】:
期待一个更好的答案(可能在我完成输入之前),但作为一个快速总结。
用户控件是可以添加到页面的东西。
可以使用 HttpHandler 代替页面。
【讨论】:
只是为了澄清问题。我在读汉塞尔曼的帖子 http://www.hanselman.com/blog/CompositingTwoImagesIntoOneFromTheASPNETServerSide.aspx 并认为我永远不会用 HttpHandler 解决问题,也许用一个返回二进制内容的简单页面。
这让我想到我应该将 HttpHandler 添加到我的开发工具带中。
【讨论】:
即使是Asp.Net 页面也是HttpHandler。
public class Page : TemplateControl, IHttpHandler
用户控件实际上驻留在 asp.net aspx 页面中。
【讨论】: