Imr*_*uch 5 c# routes asp.net-mvc-3
我正在为MVC3创建一个项目以及一个本地大学的C#.要求是在浏览器中输入www.mysite.com/teachercode之类的内容时显示教师资料.
我在我的教师控制器类中创建了一个方法ShowTeacher.我的计划是在应用程序启动时查找数据库,并且每个教师注册相同的路由,如下所示,这将进一步处理请求,这种方法是否正确?
foreach(Teacher tch in TeacherCollection)
routes.MapRoute(
"Teacher route" + tch.Id,
tch.TeacherCode,
new { controller = "Teacher", action = "ShowTeacher" }
);
Run Code Online (Sandbox Code Playgroud)
其次,如果在数据库中添加了新教师,是否可以在教师保存后立即添加路线?
提前致谢
您不需要在运行时添加路径,而是可以设置一条路线来捕获www.mysite.com/teachercode形式的URL ,只要您的教师代码与您的任何控制器都没有相同的名称. .
在RegisterRoutes,添加另一条路径(需要是第一条路线),它将路径查询路由到您的ShowTeacher行动方法TeacherController,以及路线约束.
routes.MapRoute(
"Teacher route", // route name
"{teacherCode}", // url
new { controller = "Teacher", action = "ShowTeacher" }, // defaults
new { teacherCode = @"[A-Za-z]{1,10}" } // constraints
);
Run Code Online (Sandbox Code Playgroud)
此示例中的约束 - @"[A-Za-z]{1,10}"指定教师代码仅包含大写或小写字母,长度在1到10个字符之间.您可以根据自己的需要进行调整.
| 归档时间: |
|
| 查看次数: |
1720 次 |
| 最近记录: |