如何在Orchard CMS模块中添加区域

时间:2013-12-14 14:07:13

标签: asp.net-mvc-4 orchardcms

我有使用MVC4开发的OPAC搜索网站。它有许多MVC区域。这次我需要实现或与Orchard CMS集成。我有一个问题如何在Orchard模块中使用相同的MVC区域以及如果可以完成如何可以为这些区域进行路由。

对此有任何建议将不胜感激。

由于

1 个答案:

答案 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...
                   };
    }
}
相关问题