[英]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.