【问题标题】:What is the difference between HttpHandler and a Web User Control and when to use each one?HttpHandler 和 Web 用户控件有什么区别以及何时使用它们?
【发布时间】:2010-09-06 12:50:03
【问题描述】:

我一直在广泛使用用户控件,但从未使用过 HttpHandler,我想知道我做的事情是不是最理想的还是错误的

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    很遗憾,您的问题有点像“我应该使用三明治还是水泥搅拌机”。 HttpHandlers 和用户控件是完全不同的东西。

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

    在 ASPX 页面中使用用户控件来封装您希望在多个页面中重复使用的功能单元。

    如果您成功使用用户控件,您可能不想使用 HttpHandlers!

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        期待一个更好的答案(可能在我完成输入之前),但作为一个快速总结。

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

        可以使用 HttpHandler 代替页面。

        【讨论】:

          【解决方案4】:

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

          这让我想到我应该将 HttpHandler 添加到我的开发工具带中。

          【讨论】:

            【解决方案5】:

            即使是Asp.Net 页面也是HttpHandler

            public class Page : TemplateControl, IHttpHandler
            

            用户控件实际上驻留在 asp.net aspx 页面中。

            【讨论】:

              猜你喜欢
              • 2017-05-18
              • 2020-05-02
              • 2016-03-21
              • 2023-03-17
              • 2014-10-25
              • 2020-04-29
              • 2020-02-26
              • 1970-01-01
              • 2018-07-01
              相关资源
              最近更新 更多