,c#,asp.net,asp.net-mvc,razor,razor-pages"/>

首页 > 解决方案 > 如何创建“//{id1}//{id2}" 剃须刀页面中的此类路线?

问题描述

我有一个要求,我必须创建一个路由,例如/Class/10/Student/134获取角色 id 为 134 且班级 id 为 10 的学生的信息。如何在 Razor 页面中创建这样的路由?

我在 Startup.cs 添加了以下路由

routes.MapRoute(
    name: "GetStudentFromClass",
    template: "Class/{classId}/Student/{studentId?}",
    defaults: new
    {
        controller = "Class",
        action = "Student"
    }
);

我的页面目录结构就像

- /Pages
  - /Class
    - Student.cshtml
    - Student.cshtml.cs

在 Student.cshtml 中,我已将此添加@page "{classId:int}/Student/{studentId:int?}"到第一行

但它不起作用。有什么建议,我哪里做错了?

标签: c#asp.netasp.net-mvcrazorrazor-pages

解决方案


mapRoute方法用于定义 MVC 路由。Razor Pages 路由的处理方式略有不同。您只需要将模板定义为@page指令的一部分。在这种情况下,它应该是:

@page "/Class/{classid:int}/Student/{studentid:int}"

无需向启动文件添加任何内容。


推荐阅读