我创建了一些自定义内容类型,其中包括路线部分,以便我的内容管理员可以编辑项目的别名。我没有运气配置一条路线,使我自己的控制器能够为这些项目的请求提供服务。
核心 Routable 模块中到 ItemController 的路径的路由优先级为 10。我尝试制作一条利用 IRouteConstraint 的路由,类似于 Blog 模块实现我想要做的事情的方式,优先级较低,但仍然没有运气。
如果我使 URL 以 / 结尾,则我的自定义路由将被激活,因为它与我的内容项的路径不匹配。这不是一个理想的解决方案。我无法理解为什么它不会在属于可路由模块的路线之前发现我的自定义路线。
任何帮助将不胜感激,非常感谢。
UPDATE:
这是我的 IRouteProvider 实现中的 GetRoutes 方法:
public IEnumerable<RouteDescriptor> GetRoutes()
{
return new[] {
new RouteDescriptor
{
Priority = 0,
Route = new Route(
"Admin/Jugganort/{controller}/{action}/{id}",
new RouteValueDictionary {
{"area", "Jugganort"},
{"controller", "Area"},
{"action", "List"}
},
new RouteValueDictionary(),
new RouteValueDictionary {
{"area", "Jugganort"}
},
new MvcRouteHandler())
},
new RouteDescriptor
{
Priority = 9,
Route = new Route(
"{location}/{merchant}/{promotion}",
new RouteValueDictionary {
{"area", "Jugganort"},
{"controller", "Home"},
{"action", "Index"},
{"merchant", UrlParameter.Optional},
{"promotion", UrlParameter.Optional}
},
new RouteValueDictionary {
{ "location", _routeConstraint }
},
new RouteValueDictionary {
{"area", "Jugganort"}
},
new MvcRouteHandler())
}
};
}
_routeConstraint 是 IRouteConstraint 的一个简单实现,它只是查找路线中位置的硬编码值“newcastle”。
我对RoutePart的理解不正确吗?这些项目是否总是必须从可路由模块的 ItemController 提供?我是用户替代渲染自定义形状的唯一选择吗?
果园论坛将是我的下一个拜访点。再次感谢您提供的任何帮助。