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

如何为Razor Page指定自定义路由名称?

Razor Page 自定义路由实现方式

当然可以为Razor Page指定自定义路由,不过和MVC控制器使用RouteAttribute的方式不同,Razor Page是通过**@page指令**来定义路由规则的,这是Razor Page路由的核心实现方式。

等价于MVC示例的自定义路由实现

如果你想实现和你给出的MVC控制器示例(访问/my-custom/my-index对应目标内容)完全等价的效果,只需要在目标Razor Page的顶部添加带路由模板的@page指令即可:

比如创建一个名为MyCustomIndex.cshtml的页面,内容如下:

@page "/my-custom/my-index"
@model MyCustomIndexModel

<h1>自定义路由页面</h1>

对应的代码后置文件MyCustomIndex.cshtml.cs:

public class MyCustomIndexModel : PageModel
{
    public void OnGet()
    {
        // 页面逻辑处理
    }
}

此时访问/my-custom/my-index就会直接进入该页面,完全覆盖Razor Page默认的「文件夹/页面名」路由规则。

更灵活的路由配置

你还可以通过@page指令实现带参数的路由,比如:

@page "/products/{productId:int}"

访问/products/123时,productId参数会自动绑定到PageModel的对应属性中。

如果需要给页面设置多个可访问的路由规则,用逗号分隔即可:

@page "/my-custom/my-index" "/custom-index"

这样/my-custom/my-index和/custom-index都能访问到这个页面。

和MVC路由的差异对比

MVC控制器通过类与方法上的RouteAttribute分层定义路由,而Razor Page的@page指令直接在页面层面定义完整的路由模板,无需分层标记,更贴合Razor Page单文件的特性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:30:57