Server.Transfer 无效
Server.Transfer does not work
经过大量研究,我仍然没有答案。
我使用 WebForm 应用 VS 2013。
我的代码相当简单:
Server.Transfer("~/Success.aspx",true);
在此之后,执行了 Success.aspx
的加载事件,但在浏览器中我只能看到原始主窗体。
我创建了任何只有一个按钮的空 Web 表单,但在 运行 之后是以下代码
Server.Transfer("~/WebForm2.aspx",true);
我仍然看到 MainForm.aspx,(Page_load WebForm2 的事件处理程序运行)
============================
根据 IrishGrifgin 的评论更新。
我的代码中确实有 aJax。我确实有使用 Ajax.If 的 UpdatePanels 这是 server.Transfer 的问题,我们如何解决这个问题?
没有看到很多代码,很难真正调试这个问题。请改用 Response.Redirect 函数。
Response.Redirect("~/Success.aspx");
我认为你不明白 Server.Transfer()
的作用。
它暂时将代码重定向到 运行 第二页中的代码。但是一旦完成,它 returns 将控制权返回到原始页面。浏览器完全有可能不会从第二页获取(或看到)html。
见https://msdn.microsoft.com/en-us/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>
此代码基本上使提交按钮的执行同步(覆盖更新面板行为)。
经过大量研究,我仍然没有答案。
我使用 WebForm 应用 VS 2013。
我的代码相当简单:
Server.Transfer("~/Success.aspx",true);
在此之后,执行了 Success.aspx
的加载事件,但在浏览器中我只能看到原始主窗体。
我创建了任何只有一个按钮的空 Web 表单,但在 运行 之后是以下代码
Server.Transfer("~/WebForm2.aspx",true);
我仍然看到 MainForm.aspx,(Page_load WebForm2 的事件处理程序运行)
============================
根据 IrishGrifgin 的评论更新。
我的代码中确实有 aJax。我确实有使用 Ajax.If 的 UpdatePanels 这是 server.Transfer 的问题,我们如何解决这个问题?
没有看到很多代码,很难真正调试这个问题。请改用 Response.Redirect 函数。
Response.Redirect("~/Success.aspx");
我认为你不明白 Server.Transfer()
的作用。
它暂时将代码重定向到 运行 第二页中的代码。但是一旦完成,它 returns 将控制权返回到原始页面。浏览器完全有可能不会从第二页获取(或看到)html。
见https://msdn.microsoft.com/en-us/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>
此代码基本上使提交按钮的执行同步(覆盖更新面板行为)。