我从旧的 ASP MVC 版本更新到 5.2.2
在我的代码中,我正在克隆现有的属性路由以支持本地化。
因此,如果我有一条像“/Hallo”这样的路线,那么对于英国文化来说,它就是“/Hello”。
我的代码看起来像这样
var localizedRoute = new Route(slug, defaults, constraints, tokens, originRoute.RouteHandler);
routeTable.Add(localizedRoute);
自从更新以来,当我尝试打开与此类路由相关的 url 时出现异常。它告诉我应该设置一个路由处理程序,所以我将代码更改为:
var localizedRoute = new Route(slug, defaults, constraints, tokens, new MvcRouteHandler());
但是当我打开网址时我得到了 404
我也尝试使用
var result = target.MapRoute(key, slug, defaults, constraints);
而不是直接添加相同的结果。
我究竟做错了什么?
我正在考虑尝试 IDirectRouteProvider 接口。有人可以告诉我这是否是更好的方法吗? http://msdn.microsoft.com/en-us/library/system.web.http.routing.idirectrouteprovider.getdirectroutes(v=vs.118).aspx