You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ASP.NET的LinkButton在当前标签页打开指定链接?

解决ASP.NET LinkButton在当前页面跳转的问题

看起来你遇到的核心问题是LinkButton默认会触发服务器回发,这会干扰你的客户端跳转逻辑,再加上之前用的window.open本身就是打开新窗口的方法,自然达不到预期效果。下面给你两种靠谱的解决方案:


方案1:纯客户端跳转(无回发,更高效)

直接修改OnClientClick,使用location.href实现当前页面跳转,并且一定要加上return false来阻止LinkButton的默认回发行为——这就是你之前用window.location没成功的关键!

修改后的前台代码:

<td>
    <asp:LinkButton ID="ApproveButton" runat="server" Text="Approval" CssClass="btn btn-primary btn-xs" 
        OnClientClick="location.href='/Licence-Application/Applicant-Approval-Page'; return false;"/>
</td>

为什么之前的尝试失败?

  • window.open:这个方法的设计目的就是打开新窗口/标签页,完全不符合你的需求;
  • window.location/location.href:你之前可能没加return false,导致客户端跳转执行后,服务器回发立刻把页面拉回原页面,看起来像没生效;
  • Response.Redirect:这是服务器端方法,只在客户端脚本里写它是无效的,必须在服务器端事件中使用。

方案2:服务器端处理后跳转(适合需要先执行后台逻辑的场景)

如果你的跳转需要先完成一些服务器端操作(比如更新数据库状态),可以去掉客户端脚本,改用LinkButton的服务器端点击事件:

前台代码

<td>
    <asp:LinkButton ID="ApproveButton" runat="server" Text="Approval" CssClass="btn btn-primary btn-xs" 
        OnClick="ApproveButton_Click"/>
</td>

后台代码(C#)

protected void ApproveButton_Click(object sender, EventArgs e)
{
    // 在这里添加你的服务器端逻辑,比如审批状态更新等
    // ...

    // 完成逻辑后跳转
    Response.Redirect("/Licence-Application/Applicant-Approval-Page");
}

这个方案会触发一次页面回发,但能确保服务器端逻辑执行完成后再跳转。


内容的提问来源于stack exchange,提问作者ToluOwo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:59:21