Как вы можете догадаться, по умолчанию он настроен так, чтобы модули не наступали друг другу на пальцы, но вы можете легко добавлять свои собственные маршруты. Этот код предполагает, что у вас есть два контроллера в вашем модуле, называемые Home и Default. Создайте файл Routes.cs
в маршруте вашего проекта SiteModule.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using Orchard.Mvc.Routes;
namespace SiteModule {
public class Routes : IRouteProvider {
public void GetRoutes(ICollection<RouteDescriptor> routes) {
foreach (var routeDescriptor in GetRoutes())
routes.Add(routeDescriptor);
}
public IEnumerable<RouteDescriptor> GetRoutes() {
return new[] {
new RouteDescriptor {
Priority = 5,
Route = new Route(
"Home/{action}",
new RouteValueDictionary {
{"area", "SiteModule"},
{"controller", "Home"},
{"action", "Index"}
},
new RouteValueDictionary(),
new RouteValueDictionary {
{"area", "SiteModule"}
},
new MvcRouteHandler())
},
new RouteDescriptor {
Priority = 5,
Route = new Route(
"Default/{action}",
new RouteValueDictionary {
{"area", "SiteModule"},
{"controller", "Home"},
{"action", "Gogo"}
},
new RouteValueDictionary(),
new RouteValueDictionary {
{"area", "SiteModule"}
},
new MvcRouteHandler())
}
};
}
}
}
Полагаю, просто следите, чтобы вы не перекрывали ни один из маршрутов Орчарда по умолчанию:)