我正在尝试在 MVC 应用程序中设置路由,以便可选语言“文件夹”位于顶层。
例如
site.com/jp/complexroute
... 是使用 complexroute 找到的页面的日文版
site.com/complexroute
... 是使用 complexroute 找到的页面的英文版本
我可以想到一种我认为可行的方法,即获取 RouteConfig.RegisterRoutes 中的整个路由映射列表,并制作第二组相同但具有仅限于已知语言设置的语言参数。这听起来对于编写和维护来说都是一个令人头疼的问题。
我尝试编写自定义 MvcHandler 并将其附加到路由。这让我可以提取部分请求并将其放入 RequestContext.RouteData 但是到调用它时,似乎已经选择了路由/控制器?
我想我希望在收到请求和选择路由之间发生一些事情,我可以在其中操作 url 并在对 RouteCollection 进行查找之前在 RequestContext.RouteData 中设置一个值。
这可能吗?