我有使用MVC4开发的OPAC搜索网站。它有许多MVC区域。这次我需要实现或与Orchard CMS集成。我有一个问题如何在Orchard模块中使用相同的MVC区域以及如果可以完成如何可以为这些区域进行路由。
对此有任何建议将不胜感激。
由于
答案 0 :(得分:1)
Orchard模块是作为MVC区域实现的,所以我想你应该将每个区域作为一个单独的Orchard模块进行迁移。
您可以通过实施IRouteProvider
接口为每个模块定义自定义路由。例如,以下代码将控制器MyAction
中的操作MyController
映射到URL Foo/Bar
。当然,您必须将MyModule
替换为您的Orchard模块的名称。
public class Routes : IRouteProvider
{
public void GetRoutes(ICollection<RouteDescriptor> routes)
{
foreach (var routeDescriptor in this.GetRoutes())
{
routes.Add(routeDescriptor);
}
}
public IEnumerable<RouteDescriptor> GetRoutes()
{
return new[]
{
new RouteDescriptor
{
Priority = 20,
Route =
new Route(
"Foo/Bar",
new RouteValueDictionary
{
{ "area", "MyModule" },
{ "controller", "MyController" },
{ "action", "MyAction" }
},
new RouteValueDictionary(),
new RouteValueDictionary { { "area", "MyModule" } },
new MvcRouteHandler())
},
// Other routes...
};
}
}