如何在剃须刀页面中创建“ / <controller> / {id1} / <action> / {id2}”这样的路由?

时间:2018-07-27 07:06:32

标签: c# asp.net asp.net-mvc razor razor-pages

我有一个要求,我必须创建一条类似/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?}"添加到第一行

但是它不起作用。有什么建议,我做错了什么地方?

1 个答案:

答案 0 :(得分:0)

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

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

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