Dotnetnuke自定义模块设置

时间:2014-08-13 17:45:47

标签: asp.net-mvc settings dotnetnuke-module

我创建了一个dotnetnuke模块,它有多个控件包装在一个模块中

现在我想访问模块中的设置变量,例如我有一个dateformat的设置,现在dateformat用户选择应该在整个模块中使用

它可以正常使用视图控件默认使用Dotnetnuke(ChrisToc模板)

但是当我添加新控件时它会不起作用,我还添加了适当的继承,它从不抛出编译错误(如果它没有得到正确的命名空间) 以下是我正在使用的代码:

public partial class ViewEntry : WireModuleBase
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("SETTINGS: " + Settings["WireDateFormat"]);
        }
    }

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我从不在模块视图中使用Setting词典。首先,通过在访问设置时必须对密钥字符串进行硬编码,您将面临代码错误。其次,它很难与您分享业务逻辑或其他视图。我首选的设置模式是为我的设置创建一个接口和类,为我的设置提供类属性,并执行对DNN核心的管道调用以获取和设置这些设置。

Follow this link to a Codeplex project您将在其中找到一个类SettingsRepository和ISettingsRepository接口。

将设置的公共属性(即:WireDateFormat)修改为类和接口后,可以在模块设置实现中使用它。

获取设置:

ISettingsRepository settingsCtrl = new SettingsRepository(this.ModuleId, this.TabModuleId);
txtSetting1.Text = settingsCtrl.Setting1;

写下设置

ISettingsRepository settingsCtrl = new SettingsRepository(this.ModuleId, this.TabModuleId);
settingsCtrl.Setting1 = txtSetting1.Text;

存储设置后(在本例中使用TabModuleId,但如果要在页面上的模块之间共享设置,则可以使用ModuleID构造函数重载),您可以在任何一个中使用相同的“获取”代码您的模块视图或业务逻辑。

相关问题