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

如何在ASP.NET Core中自定义Razor页面路由URL

在ASP.NET Core MVC中自定义路由实现特定URL

在ASP.NET Core MVC里,你可以通过两种常用方式实现自定义URL路由,替代原来ASP.NET的routeConfig配置,解决默认URL(如http://localhost:5088/Home/Faq)转成特定URL(如http://localhost:5088/freq_asked)的需求:

方式一:在Program.cs中配置传统路由

ASP.NET Core里的传统路由配置逻辑和旧版类似,但要注意路由顺序——自定义路由必须放在默认路由前面,因为路由匹配是从上到下执行的,先匹配到的路由会优先生效。

在Program.cs中按以下方式配置:

var builder = WebApplication.CreateBuilder(args);

// 添加MVC控制器服务
builder.Services.AddControllersWithViews();

var app = builder.Build();

// 先配置必要的中间件(如静态文件、异常处理等,按项目需求添加)
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();

// 必须先启用路由中间件
app.UseRouting();

// 添加自定义路由 - 匹配/freq_asked到Home/Faq
app.MapControllerRoute(
    name: "FaqRoute",
    pattern: "freq_asked",
    defaults: new { controller = "Home", action = "Faq" }
);

// 添加自定义路由 - 匹配/contact_the_support_team到Home/Contacts
app.MapControllerRoute(
    name: "ContactsRoute",
    pattern: "contact_the_support_team",
    defaults: new { controller = "Home", action = "Contacts" }
);

// 最后添加默认路由(兜底用)
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}"
);

app.Run();

方式二:使用属性路由(直接在Action上标注)

这种方式更灵活,不需要修改Program.cs的路由配置,直接在控制器的Action方法上添加[Route]特性即可:

public class HomeController : Controller
{
    // 访问/freq_asked时触发此Action
    [Route("freq_asked")]
    public IActionResult Faq()
    {
        return View();
    }

    // 访问/contact_the_support_team时触发此Action
    [Route("contact_the_support_team")]
    public IActionResult Contacts()
    {
        return View();
    }

    // 其他默认路由的Action(如Index)
    public IActionResult Index()
    {
        return View();
    }
}

注意事项

  • 若同时使用传统路由和属性路由,属性路由的优先级更高
  • 确保控制器和Action的名称拼写正确,ASP.NET Core路由默认不区分大小写,但建议保持一致避免问题
  • 中间件顺序不能错:UseRouting必须在MapControllerRoute之前调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:17:09