After lots of research still I do not have an answer.
I use WebForm app VS 2013.
My code is fairly simple:
Server.Transfer("~/Success.aspx",true);
After this, load event of Success.aspx
is executed but in the browser I only see original Main form.
I created any empty Web Form with only a Button on it but after running the following code
Server.Transfer("~/WebForm2.aspx",true);
still I see MainForm.aspx,(Page_load event handler of WebForm2 runs)
==========================
Update per IrishGrifgin's comments.
I indeed have aJax in my code. I do have UpdatePanels which use Ajax.If this is the problem for server.Transfer how can we resolve this?
答案 0 :(得分:2)
我认为您不了解Server.Transfer()
的作用。
它暂时重定向代码以在第二页中运行代码..但它会在完成后将控制权返回到原始页面。浏览器完全有可能无法从第二页获取(或查看)html。
请参阅https://msdn.microsoft.com/en-us/library/ms525800(v=vs.90).aspx
如果您想完全将控制权转移到第二页,则需要使用Response.Redirect
。如果您的业务规则说您不能使用它,那么我建议您重新审视业务规则并进行更改。
答案 1 :(得分:2)
最后我找到了解决方案。谢谢大家的帮助(给每个给我一个想法的人+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 :(得分:1)
没有看到很多代码,很难真正调试这个问题。请改用Response.Redirect函数。
Response.Redirect("~/Success.aspx");