繁体   English   中英

Server.Transfer不起作用

[英]Server.Transfer does not work

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

我使用WebForm应用VS 2013。

我的代码很简单:

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

此后,执行Success.aspx加载事件,但是在浏览器中,我只会看到原始的Main表单。

我创建了一个仅带有按钮的空Web窗体,但是运行了以下代码之后

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

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

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

根据IrishGrifgin的评论进行更新。

我的代码中确实包含aJax。 我确实有使用Ajax的UpdatePanels,如果这是服务器的问题,请问如何解决?

我认为您不了解Server.Transfer()功能。

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

参见https://msdn.microsoft.com/zh-cn/library/ms525800(v=vs.90).aspx

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

终于我找到了解决方案。 谢谢大家的帮助(给我一个主意的人+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>

这段代码基本上使提交按钮的执行同步(重写Update-Panel Behavior)。

在没有看到很多代码的情况下,很难真正调试此问题。 请改用Response.Redirect函数。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM