在本地部署dnn
一、将dnn压缩包解压,发布在本地(虚拟目录)
二、运行Install文件夹的InstallWizard.aspx(安装向导)
Username :host
Password: 自己可设置 如admin123
Database Type 选中SQLServer/SQL Server Express Database
Server Name:.CHENJIAN-PC\SQLR2
Database Name 数据库名为自己新建的空数据库名
提交后,会自动在空数据库建表,执行的表来自\Providers\DataProviders\SqlDataProvider
到此Dnn算是安装好了,数据库准备好了。
三、安装工具Sinopec WorkBench Project Templates VSIX_协同平开发扩展包_v1.0
建立项目 选择协同平台开发扩展包c# DAL2Compiled Module 去掉为解决方案创建目录
三、配置好后通过iis运行Default.aspx
点击平台中的Register可以注册用户
点击Login 登录 ,登录成功后可看到View.ascx
添加新的模块:用管理用户登录后点击Host 里的Extensions 点击Install Extension Wizard
然后选择安装文件(Choose File),
此安装文件为新模块发布生成的压缩包(G:\WorkBench\LocalWebSite\DesktopModules\RenCaiKu\install)
新模块会在DesktopModules里,RenCaiKu为模块名称,压缩包在模块下的install里,而此压缩包要
将项目中Internet Explorer 的Debug下拉框选中Release 再生成才会有
Host Settings 设置OtherSettings 的Control Panel 下拉框为RIBBONBAR 这样可以出现导航模板
点击Pages 添加页面 其中Parent Page选择Home
点击Admin 中User Accounts 可添加用户
点击Modules 设置Category 下拉框为All Categories
Module 下拉框为自己建的pages
用法:DNN默认页面是View.ascx,因为在Host-Extensions-Module Definitions中View.ascx的Key 为空。如下图
所以点击页面默认进入到view如下图
从View中点击编辑Edit 想进入到自己添加的新的用户控件时,用户控件需要继承DNNTestModuleBase,同时在平台中要添加用户控件(Host-Extensions-Module Definitions)点击Add module control,如下图
Add Module Control 需要注意的事:如下图:
上图key 用于跳转如:AddGroup。
Source 选择新建控件的路径
Type 根据自己需求选择Edit,View等。
然后修改View页面的跳转:
lnkEdit.NavigateUrl= EditUrl(string.Empty, string.Empty, "AddGroup");
DNN的跳转形式:
一、相同模块间
1)跳转到ascx页面,不带参数
Response.Redirect(EditUrl("","","ascx页面Key值"));
2)跳转到ascx页面,带参数
Response.Redirect(EditUrl("","","ascx页面Key值","BlogID1=Blog参数1","BlogID2=Blog参数2"));
3)任意ascx页面到模块首页,不带参数
Response.Redirect(Globals.NavigateURL(), true);
4)任意ascx页面到模块首页,带参数
int intTabID=this.TabId;
Response.Redirect(Globals.NavigateURL(intTabID,"","op=Back"));
二、不同模块间跳转
DotNetNuke.Entities.Modules.ModuleController objModules=new DotNetNuke.Entities.Modules.ModuleController();
intintTabID=objModules.GetModuleByDefinition(PortalSettings.PortalId,"DM Blog").TabID;
1)模块间跳转,不带参数
Response.Redirect(Globals.NavigateURL(intTabID));
2)模块间跳转,带参数
Response.Redirect(Globals.NavigateURL(intTabID,"","BlogID1=Blog参数1","BlogID2=Blog参数2"));
3)模块间跳转到另一模块的某个ascx页面,不带参数
Response.Redirect(Globals.NavigateURL(intTabID,"ascx页面Key值"));
4)模块间跳转到另一模块的某个ascx页面,不带参数
Response.Redirect(Globals.NavigateURL(intTabID,"ascx页面Key值","BlogID1=Blog参数1","BlogID2=Blog参数2"));
注意:
如果不想默认为View 则修改Host-Extensions-Module Definitions中自己需要的默认页的Key为空。