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

如何在Razor中获取当前URL的ID参数并重定向到新工作流页面

嘿,这个需求其实挺常见的,我给你几个靠谱的实现方案,你可以根据自己项目的技术栈来选:

方案1:ASP.NET Core 路由直接处理(推荐)

如果你的项目是基于ASP.NET Core的,不用额外写控制器,直接在路由配置里就能搞定,代码简洁还高效:

app.UseEndpoints(endpoints =>
{
    // 先配置旧路由的重定向规则
    endpoints.MapGet("/oldworkflow/{id:int}", async context =>
    {
        var entityId = context.Request.RouteValues["id"];
        var newUrl = $"/newworkflow/{entityId}";
        // 用301永久重定向,既能让用户的书签自动更新,也对SEO友好;临时重定向可以把permanent设为false
        context.Response.Redirect(newUrl, permanent: true);
    });

    // 你的其他常规路由配置...
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});

这里的{id:int}是为了只匹配数字格式的实体ID,避免无效请求被误处理。如果ID可能包含其他字符,把:int去掉就行。

方案2:ASP.NET MVC 控制器动作处理

要是你用的是传统.NET Framework的ASP.NET MVC,或者更习惯用控制器来管理跳转逻辑,可以加个专门的重定向控制器:

public class RedirectController : Controller
{
    [Route("oldworkflow/{id:int}")]
    public ActionResult OldWorkflowToNew(int id)
    {
        // 永久重定向用RedirectPermanent,临时重定向用Redirect
        return RedirectPermanent($"/newworkflow/{id}");
    }
}

配置好之后,用户访问旧URL时就会触发这个动作,自动跳转到对应的新页面。

方案3:IIS URL重写模块(无需改代码)

如果项目部署在IIS上,也可以直接在服务器层面配置重写规则,不用动项目代码:

  1. 打开IIS管理器,找到你的网站,双击「URL重写」
  2. 点击「添加规则」,选择「空白规则」
  3. 按以下配置填写:
    • 规则名称:OldWorkflowRedirect
    • 匹配URL:请求路径选「匹配模式」,使用正则表达式,模式填^oldworkflow/(\d+)$
    • 操作:操作类型选「重定向」,重定向URL填/newworkflow/{R:1},重定向类型选「永久(301)」

几个小提醒

  • 优先用301永久重定向,除非你之后可能还要改回旧路由,不然301对用户体验和搜索引擎优化都更友好
  • 测试的时候可以打开浏览器开发者工具的「网络」面板,确认重定向的状态码是301/302,并且跳转的URL正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:58:40