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

C# 将Html数据发送到HttpHandler并从处理程序中获取它,c#,asp.net,httphandler,C#,Asp.net,Httphandler,我正在我的管理页面格式化html,并希望将此html作为响应对象的一部分发送。我正在使用Response.Redirect重定向到HttpHandler(Preview.ashx),但是我应该如何在Response中发送html并在我的处理程序中使用HttpContext对象从HttpHandler读取它呢?您需要将html存储在某个地方,并在QueryString上向您的处理程序发送密钥。例如,您可以使用GUID键将其置于会话中,并在查询字符串上发送GUID,如Preview.ashx?htm

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

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


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

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

由于用户可能已登录(管理面板),您可以将html放入会话中,稍后在处理程序中将其取出。
不过,您需要在ashx中实现iRequiresessionState

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

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