0

Composite C1サイトの子ディレクトリにサブアプリケーション(YetAnotherForum.NET)があります。一貫したルックアンドフィールを維持するために、ナビゲーション要素のC1関数を取り込みたいと思います。

注:以下のコードのすべてのhtmlマークアップでは、ここに投稿できるように、角かっこが角かっこに置き換えられています。

次の構文を使用してC1関数を呼び出すことができることがわかりました。

[f:function ID = "Function1" name = "Custom.Layout.FooterLinks" runat = "server" /]

ただし、関数の背後にあるデータは利用できないようです。データの問題が何であるかについてのアイデアはありますか?おそらく、何らかの形式のコンポジットC1ページから継承するために外部ページが必要ですか?

関数コードは次のとおりです。

@using Composite.Data;
@using Composite.Data.Types;
@using Composite.Data.ProcessControlled.ProcessControllers.GenericPublishProcessController;

@using CompositeC1Contrib.RazorFunctions;

@inherits CompositeC1WebPage

@関数 {
    プライベートIEnumerableFooterLinkPages()
    {{
        IEnumerableページ=DataFacade.GetData();
        IEnumerable returnPages;

        using(DataConnection connection = new DataConnection())
        {{
            returnPages =(connection.Get()のlから
                           l.Pageのページにpを結合してp.Idに等しい
                           ここで、l.PublicationStatus == GenericPublishProcessController.Published
                            && p.PublicationStatus == GenericPublishProcessController.Published
                           orderby l.Position ascending
                           p).ToList();を選択します。
        }

        return returnPages;
    }
}

[ul class = "unstyled"]
@foreach(FooterLinkPages()のIPageページ)
{{
    [li] @(String.IsNullOrWhiteSpace(page.MenuTitle)?page.Title:page.MenuTitle)[/ a] [/ li]
}
[/ ul]
4

1 に答える 1

1

データアクセスコードを次のようにラップする必要があります。

using(Composite.Core.Threading.ThreadDataManager.EnsureInitialize())
{
    using (DataScope localeScope = new DataScope(new System.Globalization.CultureInfo("en-NZ")))
    {
        ...
    }
}
于 2012-07-05T04:54:05.723 に答える