将Html数据发送到HttpHandler并从处理程序中获取它

时间:2010-08-23 15:54:04

标签: c# asp.net httphandler

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

4 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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