我正在尝试使用 root 设置我的 MVC 应用程序,如下所示:
- mysite.com/ -> 索引操作
- mysite.com/thingID -> 到 CurrentThing 操作
- mysite.com/thingID/year -> 到 CurrentThing 操作
行动:public ActionResult CurrentThing(string thingID, int year)
我还需要常规的控制器/动作路由来使用和不使用 id。ThingID 是一个字符串。我定义了以下路线:
routes.MapRoute(
"Regular",
"{controller}/{action}/{id}",
new { id = UrlParameter.Optional }
);
routes.MapRoute(
"RootSpecificRecord",
"{thingID}/{year}",
new { controller = "Things", action = "CurrentThing", year = DateTime.Now.Year }
);
routes.MapRoute(
"Root",
"",
new { controller = "Things", action = "Index" }
);
这工作正常,直到我访问 mysite.com/id/year,此时第一条路由将 id 视为控制器,将年份视为操作。我该如何解决这个问题?