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

Post方法后用RedirectToAction重定向时如何在URL中传递#text

在Post方法中用RedirectToAction添加URL锚点的解决方案

这个问题我之前也碰到过,默认的RedirectToAction方法本身并不直接支持传递URL锚点(就是#后面的部分),不过有两个简单可行的办法能实现你想要的效果:

方法一:拼接URL后使用Redirect跳转

核心思路是先让框架帮我们生成正确的路由URL,再手动拼接上锚点,最后用Redirect方法完成重定向。代码示例如下:

public ActionResult YourPostAction()
{
    // 生成基础的路由URL(对应testController/testAction/15)
    var baseUrl = Url.Action("testAction", "testController", new { id = 15 });
    // 手动拼接锚点部分
    var targetUrl = $"{baseUrl}#test";
    // 执行重定向
    return Redirect(targetUrl);
}

这里要注意:锚点(#test)是客户端浏览器处理的内容,不会被发送到服务器,所以我们只需要在生成的URL末尾直接拼接即可,服务器不需要额外处理这部分逻辑。

方法二:ASP.NET Core下的另一种写法(可选)

如果你的项目是ASP.NET Core,也可以通过Url.RouteUrl来生成基础URL再拼接锚点,代码逻辑和上面一致,写法稍微不同:

public IActionResult YourPostAction()
{
    var routeParams = new RouteValueDictionary
    {
        { "action", "testAction" },
        { "controller", "testController" },
        { "id", 15 }
    };
    // 生成基础路由URL
    var baseUrl = Url.RouteUrl(routeParams);
    // 拼接锚点后重定向
    return Redirect($"{baseUrl}#test");
}

这两种方法都能让你在Post方法执行后,重定向到www.test.com/testController/testAction/15#test这个目标URL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:40:25