c# - 如何创建“//{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?}"
到第一行
但它不起作用。有什么建议,我哪里做错了?
解决方案
该mapRoute
方法用于定义 MVC 路由。Razor Pages 路由的处理方式略有不同。您只需要将模板定义为@page
指令的一部分。在这种情况下,它应该是:
@page "/Class/{classid:int}/Student/{studentid:int}"
无需向启动文件添加任何内容。
推荐阅读
- javafx - 在 JavaFX 中,我如何判断哪个 Stage 位于另一个 Stage 前面?
- javascript - 如何将数据从 VueJS 组件传递到 main.js?
- heroku - 部署到 Heroku 的 Meteor 应用程序因 CloudFlare Flexible SSL 失败
- qchart - QChart设置刻度不均匀的空间
- sql - 在 BigQuery SQL 中将一个表中的列复制到另一个表中。
- sql - 仅当临时表有值时才使用内连接
- machine-learning - 分类中错误率的定义以及为什么一些研究人员使用错误率而不是准确率
- php - PHP check JSON string for item = value
- python - 如何将 2 列常量添加到指定位置的列表中?
- javascript - BootStrap 4.1 - 在模态对话框中使用下拉菜单对齐选项卡