DNN MVC模块 - 如何访问设置?

时间:2016-05-06 12:57:09

标签: dotnetnuke dotnetnuke-module

我正在使用Chris Hammond DNN模块模板来了解DNN MVC模块。我在Settings类中添加了另一个名为Display的属性,它在数据库中保存为“MessageList_Display”,我也可以在Module的设置中看到Display的值,但是如何访问此设置值?

我有一个名为“MessagesViewModel.cs”的Model类,我有一个名为Message的属性。

public string Message
{
    get
    {
        var settings = new Settings();
        if (settings.Display != null)
        {
            return settings.Display;
        }
        return string.Empty;
    }
}

设置的显示为空,而Setting1和Setting2都有值。如何访问DNN MVC模块中的设置?

1 个答案:

答案 0 :(得分:2)

我有一个DNN8 MVC模块的工作示例项目,其中包含一个工作模块设置:https://github.com/DotNetNuclear/DnnRestaurantMenu/releases

下载RestaurantMenuMVC_01.00.00_Source.zip包。

我也是从Chris Hammond模板构建的。我假设您在设置控制器和视图中设置和获取模块设置没有问题。如果您询问如何访问其他视图中的设置,可以从控制器访问设置的值,如下所示:

public ActionResult Index()
{
    string display;
    var model = new MessagesViewModel();
    // populate your model

    if (ModuleContext.Settings.ContainsKey("MessageList_Display"))
    {
        display = ModuleContext.Settings["MessageList_Display"].ToString();
    }
    ViewBag.Display = display;
    // or model.Message = display;

    return View(model);
}

在这里,您可以看到我将设置添加到ViewBag中,我可以在剃刀视图中访问该设置。您也可以在MessagesViewModel上设置值。