【问题标题】:Using Server.Transfer to preserve the page URL, how to keep the URL when clicking a button on the new page?使用Server.Transfer保存页面URL,在新页面点击按钮时如何保存URL?
【发布时间】:2013-07-06 00:38:58
【问题描述】:

我对 asp.net 非常陌生,在浏览其功能时,我发现如果您使用 Server.Transfer 而不是 Response.Redirect,那么除其他外,您可以保留原始页面的 URL .我创建了两个测试页面。

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

问题是,当我单击第二页上的按钮并更改标签时,URL 会更改为第二页的 URL。这似乎有点违背目的,那么我该如何保留 URL?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

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

    我很好奇为什么你想让两个单独的.aspx 页面表现得好像它们只是一个一样。使用Server.Transfer 的主要缺点之一是当用户认为他们在一个新页面上时,它会引起混淆,但浏览器却说不然;尤其是在书签场景中。

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

    【讨论】:

    • 我目前没有理由想要这个,我只是在学习 ASP.Net。我想知道如何做到这一点,以防我将来有理由想要这样做。毕竟,一定有一些地方有用吗?如果不是,为什么要让 URL 保持不变?
    • 这里有一个类似的问题Difference Between Response.Redirect And Server.Tranfer。它提供了一个很好的列表,说明您何时应该在接受的答案中使用每种方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多