【问题标题】:Server.Transfer does not workServer.Transfer 不起作用
【发布时间】:2016-04-15 15:18:21
【问题描述】:

经过大量研究,我仍然没有答案。

我使用 WebForm 应用程序 VS 2013。

我的代码相当简单:

Server.Transfer("~/Success.aspx",true);

在此之后,Success.aspx 的加载事件被执行,但在浏览器中我只看到原始主窗体。

我创建了任何空的 Web 表单,上面只有一个按钮,但在运行以下代码之后

  Server.Transfer("~/WebForm2.aspx",true);

我仍然看到 MainForm.aspx,(WebForm2 运行的 Page_load 事件处理程序)

===========================

根据 IrishGrifgin 的 cmets 更新。

我的代码中确实有 aJax。我确实有使用 Ajax 的 UpdatePanel。如果这是服务器的问题。我们如何解决这个问题?

【问题讨论】:

  • 您是在启用 AJAX 的页面上调用它吗?
  • 我不这么认为。我该如何检查?
  • 不要试图找到解决方案,最好使用其他方式设计您的页面。 Server.Transfer 很棒,但如果你不能理解真正在做什么,那就避免它。而且在大多数情况下,不能处理复杂的页面,不能做一些回传......简单,找到其他方式 - Server.Transfer 工作 - 但所做的不是你所期望的......
  • 你能不能创建一个空项目并通过 github 分享。
  • 试试Server.TransferRequestHttpServerUtility.TransferRequest

标签: c# asp.net .net webforms


【解决方案1】:

我终于找到了解决方案。谢谢大家的帮助(为所有给我想法的人+1)。

这是我的代码:

cs:Server.Transfer("~/Success.aspx",false);

HTML:

<div id="submit">                   
                    <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" UseSubmitBehavior="False" />                   

</div>

如前所述,提交按钮位于更新面板内。 在这种情况下,我们需要使用以下代码:

 <Triggers>
       <asp:PostBackTrigger ControlID="btnSubmit" />
  </Triggers>

这段代码基本上使提交按钮的执行同步(覆盖更新面板行为)。

【讨论】:

    【解决方案2】:

    我认为你不明白 Server.Transfer() 的作用。

    它会临时重定向代码以运行第二页中的代码。但一旦完成,它会将控制权返回到原始页面。浏览器完全有可能不会从第二页获取(或看到)html。

    https://msdn.microsoft.com/en-us/library/ms525800(v=vs.90).aspx

    如果您想完全将控制权交给第二页,那么您需要使用Response.Redirect。如果您的业务规则说您不能使用它,那么我建议您重新访问并更改业务规则。

    【讨论】:

      【解决方案3】:

      没有看到很多代码,很难真正调试这个问题。请改用 Response.Redirect 函数。

      Response.Redirect("~/Success.aspx");
      

      【讨论】:

      • 这是一个建议,但不是问题的答案。
      • OP 没有问任何问题。他也没有提到 Response.Redirect 由于业务规则而无法使用(我不确定那将是哪种业务规则)。 Response.Redirect 通常处理他请求的内容。鉴于最初帖子中提供的信息有限,dotctor 也有类似的答案。
      猜你喜欢
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多