代码不应在installer.cs 中,而应在module.cs 文件中。你会看到在 Install 方法中有一个调用:
this.InstallBackendPages(initializer);
在那里你可以像这样创建你的页面:
Guid groupPageId = Guid.NewGuid();
Guid pageId = Guid.NewGuid();
initializer.Installer
.CreateModuleGroupPage(groupPageId, "EmptyCustomModule1 group page")
.PlaceUnder(SiteInitializer.SitefinityNodeId)
.SetOrdinal(100)
.LocalizeUsing<AvalonNotificationsResources>()
.SetTitle("Avalon")
.SetUrlName("avalon")
.ShowInNavigation()
.AddChildPage(pageId, "Test Page")
.SetOrdinal(1)
.LocalizeUsing<AvalonNotificationsResources>()
.SetTitle("Test Page")
.SetUrlName("test-page")
.AddUserControl("~/UserControls/TestWidget.ascx", "Content")
.AddControl(new System.Web.UI.WebControls.Literal()
{
Text = "<h1 class=\"sfBreadCrumb\">Test Widget</h1>",
Mode = System.Web.UI.WebControls.LiteralMode.PassThrough
})
.ShowInNavigation()
.Done()
.Done();
这绝对适用于我,无需提供任何用户凭据,因为仅当管理员激活模块并单击安装时才会调用 Install 方法 - 这意味着它已经在管理员权限下运行。