使用Server.Transfer保留页面URL,如何在单击新页面上的按钮时保留URL?

时间:2013-07-06 00:38:59

标签: c# asp.net

我对asp.net非常陌生,在我对其功能的介绍中,我发现如果你使用Server.Transfer代替Response.Redirect,那么除了其他方面,你可以保留原始页面的URL。我创建了两个测试页面。

第一个有文本框和按钮。单击该按钮时,文本框的内容将保存在Session变量中,Server.Transfer用于加载第二页。在这个页面上有一个按钮和一个标签。单击该按钮时,标签将填充会话变量中保存的内容。

问题是,当我单击第二页上的按钮并更改标签时,URL将更改为第二页的URL。这似乎有点打败了目的,所以我该如何保留URL?

1 个答案:

答案 0 :(得分:2)

单击第二页上的按钮会导致回发,服务器显示您要回发的页面的URL(第二页)。实际上,您已经为自己做了Response.Redirect

我很好奇为什么你想让两个独立的.aspx页面表现得好像它们只是一个。使用Server.Transfer的一个主要缺点是当用户认为他们在新页面时会引起用户的混淆,但浏览器则另有说法;特别是在书签方案中。

如果您希望逻辑驻留在单个.aspx页面中,但作为两个独立的逻辑单元,那么我建议您使用ASP.NET Panel控件来显示/隐藏逻辑,并根据需要显示页面的代码隐藏可以在一个页面中对必要的事件(即按钮点击)作出反应,并且URL在整个时间内都是相同的。