1

Bertrand Le Roy によるこの ブログ投稿を読んで、Orchard リクエストのライフ サイクルを理解しようとしています。コードをステップ実行して、特定のルートのシェイプの作成を説明する段落 1 の図を作成することができました。良い。

第 1 段落のシーケンス図

ここに画像の説明を入力

パラグラフ 1 の関連コード

public ActionResult Display(int id) {
    var contentItem = 
        _contentManager.Get(id, VersionOptions.Published);

    if (contentItem == null)
        return HttpNotFound();

    if (!Services.Authorizer.Authorize(Permissions.ViewContent, 
            contentItem, 
            T("Cannot view content"))) {
        return new HttpUnauthorizedResult();
    }

    dynamic model = _contentManager.BuildDisplay(contentItem);
    return new ShapeResult(this, model);
}

パラグラフ 3 で行き詰まる

投稿の 3 番目の段落で、Bertrand は Layout 形状について語っています。

作業コンテキストのこの時点で、1 つの非常に重要な形状が既に存在します。それがLayout 形状です。

わかった。したがって、それはすでに存在します。それはいつ作成され、それを作成するコードはどこにありますか?

4

1 に答える 1

0

Betrand Le Roy がcodeplex の議論で答えました。

[レイアウト形状は] 必要になったときに作業コンテキストによって作成されます (そこの Layout プロパティ アクセサーを見てください)。

彼の答えは、次のコードを参照しています。

public dynamic Layout {
    get { return GetState<object>("Layout"); }
    set { SetState("Layout", value); }
}
于 2013-04-30T18:02:21.820 に答える