【问题标题】:Response.Redirect - How to write HTML Code/aspx code to response.redirectResponse.Redirect - 如何将 HTML 代码/aspx 代码写入 response.redirect
【发布时间】:2012-02-09 04:53:08
【问题描述】:

如何response.redirect 到一个即时创建的aspx 页面。示例:

Response.Redirect('<HTML><BODY>.....</BODY></HTML>");

我没有要重定向的地址。我在处理一些逻辑之后创建了那个 aspx 页面,并且每次它都不同。所以想要重定向到动态创建的页面而不将其保存在某个地方。

任何输入???

【问题讨论】:

  • 解释一下,硬盘是本地的html页面吗?
  • 没有。这是在服务器端的 ASPX 页面中,它将创建另一个 ASPX 页面以重定向到某个地方。

标签: asp.net redirect response


【解决方案1】:

您不能重定向到这样的动态内容。但也许您可以通过 AJAX 让您的页面加载内容。查看 jQuery 及其 AJAX 功能,以将内容动态加载到元素中。

【讨论】:

    【解决方案2】:

    您是否考虑过为此使用httpHandler

    在您的 web.config 中,注册处理程序:

    <system.web>
     <httpHandlers>
       <add verb="*" path="PageBuilder.ashx" type="YourNamespace.ClassName, YourNamespace"/>
     </httpHandlers>
    ...
    

    您可以将当前用于构建 aspx 的任何逻辑放入处理程序中:

    //use the IRequiresSessionState if your handler requires access to the session
    public class PageBuilder : IHttpHandler, IRequiresSessionState 
    {
        public void ProcessRequest(HttpContext context)
        {
            //logic to build your page
        }
    }
    

    只需将重定向指向 PageBuilder.ashx 并使用查询字符串变量或 Session 对象传递数据。

    您可以在此处了解有关处理程序的更多信息: What is an HttpHandler in ASP.NET

    【讨论】:

    • 你在你的问题中提到你正在“处理一些逻辑”来构建一个 aspx——所以这听起来你是在以某种方式基于一些数据动态构建一个 aspx 页面......你需要什么要做的是在构建 .aspx 之前重定向到 .ashx 并将所需的信息发送给处理程序,以便它可以创建动态页面而无需任何物理 aspx 文件。这有帮助吗?
    【解决方案3】:

    在将任何 HTML 发送到浏览器之前,需要调用Response.Redirect。

    我认为您正在尝试做的是响应。根据您的处理过程中发生的情况写出一些 HTML。您确定不需要一个或多个物理页面吗?

    【讨论】:

      猜你喜欢
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 2010-12-15
      相关资源
      最近更新 更多