c# – 在Umbraco站点的MVC部分视图中处理全局设置节点

我目前正在我的主模板上设置我的部分视图,如下所示:

@inherits UmbracoTemplatePage
@{
    Layout = null;

    IPublishedContent global = Umbraco.TypedContentSingleAtXPath("//*[@nodeTypeAlias='Global']");
}

<!DOCTYPE html>
<html>

    <body>
        @Html.Partial("Header", global)

        @RenderBody()

        @Html.Partial("Footer", global)
    </body>
</html>

被调用的全局节点包含页眉和页脚工作所需的一切,即内容管理的徽标和导航.事实上,这很好.

但是,每次我想要获取全局设置时,必须声明并传递此全局节点会感到浪费.我的背景是WebForms,所以我可以创建一个类,每次都调用它来获取我想知道MVC类型处理方式的节点.

有没有人知道一种干净的方式我可以将这个声明合并到一个模型或控制器中,这样我就可以在需要时调用全局设置,而不必先声明并调用我的部分视图?

最佳答案 我只想使用在bootstrapping / global.asax期间初始化的singleton / statoc对象.

然后你应该可以从任何你想要的地方访问它…

:编辑:
举个例子:

创建一个提供静态属性的类

public class Global
{
    public static string SomeProperty { get; private set; }

    internal static void Initialize()
    {
        // do initialize your global properties
        SomeProperty = "Something";
    }
}

在全局asax期间初始化它

protected void Application_Start()
{
    Global.Initialize();
}

在您的视图中使用它:

@Global.SomeProperty
点赞