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