【问题标题】:Don't Change URL in Browser When Clicking <asp:LinkButton>单击 <asp:LinkBut​​ton> 时不要更改浏览器中的 URL
【发布时间】:2008-12-08 17:14:03
【问题描述】:

我有一个 ASP.NET 页面,它使用基于母版页中asp:LinkButton 控件的菜单。当用户选择菜单项时,onclick 处理程序调用我的 C# 代码中的方法。它调用的方法只是对新页面执行Server.Transfer()。根据我的阅读,这不应该更改浏览器中显示的 URL。

问题在于,当用户将菜单导航到不同页面时,浏览器中的 URL 会发生变化。

这是菜单中的一项:

<asp:LinkButton id="foo" runat="server" onclick="changeToHelp"><span>Help</span>
</asp:LinkButton>

在我的 C# 代码中,我使用如下方法处理事件:

protected void changeToHelp(object sender, EventArgs e)
{
    Server.Transfer("Help.aspx");
}

知道如何在不改变浏览器的 URL 栏的情况下浏览菜单吗?

【问题讨论】:

  • 我创建了一个示例应用程序,它一开始就使用您的代码工作。 Page_Load 事件或任何其他 Page 事件中是否还有其他事情发生?链接是否包含在 AutoPostBack 或任何类型的 UpdatePanel 中?
  • 你有没有机会解决这个问题?这个问题是自动提出的,所以如果你找到了答案,为了其他人,值得在这里发布。 :)

标签: c# asp.net url


【解决方案1】:

您可以使用 iframe 来确保浏览器的 URL 不会改变。 在 Page_Load 中,您可以将 iframe 的 src 属性更改为 help.aspx

【讨论】:

    【解决方案2】:

    改用Server.Execute("Help.aspx")。如果需要,您可以使用

    保留表单
    Server.Execute("Help.aspx",true);
    

    【讨论】:

    • 这似乎不起作用。当我将 Server.Transfer() 更改为 Server.Execute() 时,我的菜单不再切换页面
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多