【问题标题】:Sending Html data to HttpHandler and fetch it from within handler将 Html 数据发送到 HttpHandler 并从处理程序中获取它
【发布时间】:2010-08-23 15:54:04
【问题描述】:

我正在我的管理页面中格式化 html,并希望将此 html 作为响应对象的一部分发送。我正在使用 Response.Redirect 重定向到 HttpHandler (Preview.ashx),但是我应该如何在响应中发送该 html 并使用我的 Handler 中的 HttpContext 对象从 httphandler 读取它?

【问题讨论】:

    标签: c# asp.net httphandler


    【解决方案1】:

    您需要将 HTML 存储在某处,并将密​​钥发送到 QueryString 上的处理程序。例如,您可以使用 GUID 键将其置于会话中,并在 QueryString 上发送 GUID,例如 Preview.ashx?htmlId=000...

    您也可以将其存储在数据库、缓存或应用程序中。只是一些想法......

    【讨论】:

    • 如何将 html 作为响应标头的一部分作为 namevaluecollection 发送,我可以通过查询字符串发送 namevaluecollection 的键,在处理程序中我可以获取每个键并在响应标头中搜索值(html )?这会是一种有效的方法吗?
    • 这将要求浏览器发回您发送的相同标头,我认为这不会发生。即使有办法做到这一点,您现在也允许客户端访问可能敏感的数据。
    【解决方案2】:

    如何将 html 作为响应标头的一部分作为 namevaluecollection 发送,我可以通过查询字符串发送 namevaluecollection 的键,并且在处理程序中我可以获取每个键并在响应标头中搜索值 (html)?那会是一种有效的方法吗?

    【讨论】:

      【解决方案3】:

      由于用户可能已登录(管理面板),您可以将 html 放入会话中,稍后在处理程序中将其拉出。 不过,您需要在 ashx 中实现 IRequiresSessionState。 http://msdn.microsoft.com/en-us/library/system.web.sessionstate.irequiressessionstate.aspx

      【讨论】:

        【解决方案4】:

        我想你可能想看看 HttpServerUtility.Transfer() 方法。虽然 Response.Redirect 将创建对客户端的响应,指示客户端导航到新页面(在您的情况下为 .ashx 页面),但服务器传输将对页面执行“服务器端重定向”,并且您的服务器状态将为维护,以便您可以将 html 存储在上下文变量中,在该变量中可以通过 ashx 处理程序中的逻辑进行检索。

        【讨论】:

          猜你喜欢
          • 2015-04-22
          • 1970-01-01
          • 2015-01-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多