Вы можете, при создании страницы как части файла migrations.cs в модуле, указать автозапуску установить псевдоним вашей созданной страницы в качестве домашней страницы:
//create a page page
var homepage = _contentManager.Create("Page");
homepage.As<TitlePart>().Title = "My Home";
_contentManager.Publish(homepage);
var homePageArp = homepage.As<AutoroutePart>();
homePageArp.DisplayAlias = String.Empty;
_autorouteService.PublishAlias(homePageArp);
Это предполагает, что вы переходите счистый экземпляр Orchard без каких-либо предыдущих домашних страниц;если у вас уже есть домашняя страница, вам придется заново создать псевдонимы этих страниц как часть вашего модуля.Вот как это делается в рамках AutoroutePartHandler в проекте Orchard.Autoroute (внутри метода Publish Alias):
// regenerate the alias for the previous home page
var currentHomePages = _orchardServices.ContentManager.Query<AutoroutePart, AutoroutePartRecord>().Where(x => x.DisplayAlias == "").List();
foreach (var current in currentHomePages) {
if (current != null) {
current.CustomPattern = String.Empty; // force the regeneration
current.DisplayAlias = _autorouteService.Value.GenerateAlias(current);
}
_autorouteService.Value.PublishAlias(current);
}
_autorouteService.Value.PublishAlias(part);
Если вы копаете драйвер и обработчик для проекта autoroute, выузнаете много нового о внутренностях;когда вы отмечаете это поле «установить как домашнюю страницу» в пользовательском интерфейсе администратора, он устанавливает путь в «/», а затем он выбирается, запускает повторное подключение старой домашней страницы, очищает путь «/» к String.Empty, а затемпубликует этот пустой псевдоним, давая вам новую домашнюю страницу.
(это действительно с Orchard 1.6)