ASP.. NET MVC 5路由配置
本文关键字:路由 配置 MVC NET ASP | 更新日期: 2023-09-27 18:12:34
我有2条路由:
- 大学/{courseId}/{classId} 大学/{courseId}
但有时当我尝试输入第一个url类型时,如college/course1/class2,它会转到第二个动作。
我可以修改路由配置来准确地做到这一点吗?下面是我的代码:
[Route("college/{courseId}/{classId}")]
public void ActionResult example1(string courseId, string classId) {
return View();
}
[Route("college/{courseId}")]
public void ActionResult example2(string courseId) {
return View();
}
RouteConfig.cs文件:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
AreaRegistration.RegisterAllAreas();
routes.MapMvcAttributeRoutes();
//Default
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
这可能对你有帮助。
https://www.nuget.org/packages/routedebugger/它将显示匹配的路由。
我怀疑它们都是匹配的,但添加的顺序不正确。
这可能就像颠倒它们相加的顺序或使它们更具体一样简单。
我建议你只定义一个路由,并且只有一个带有可选参数的动作:
[Route("college/{courseId}/{classId?}")]
public void ActionResult example1(string courseId, string classId) {
// Do classId null check if necessary
return View();
}
请注意,路由定义中的classId
参数后面有一个问号