3

既存の ASP.NET MVC 3 Web サイトを Orchard に移行しようとしているので、Orchard が提供する拡張機能を利用しながらサイトの構築を続けることができます。既存のサイト全体をオーチャード モジュールにラップしようとしているので、既存のすべての機能をそのまま維持し、必要に応じて機能を追加したり、古い機能を新しいパラダイムに移植したりできます。

Orchard へのストレート コピーで私が抱えている主な問題は、MVC 3 のレイアウト階層を利用して、関連するページに同じ親レイアウトを指定し、それが独自の親レイアウトを持つ可能性があることです。 .

既存のビューにコピーすると、レイアウトがカスタム Orchard WebPageView の読み取り専用プロパティであるというエラーが表示されますが、ベース ビュー タイプを標準の MVC 3 ベース タイプに戻すと、パスが一致しません。 Moduleフォルダー構造のため、私の見解。

ネストされたレイアウトを指定する機能は、Orchard で実行されているサイトではサポートされていませんか? それとも、組み込みの回避策が欠けているのでしょうか?

ありがとう!-J

4

1 に答える 1

2

Orchard のレイアウト システムは MVC よりも前のもので、動作が少し異なります。物事を少しリファクタリングする必要があると思います。Orchard のビューは、ビュー モデルに類似した動的オブジェクトである形状の概念に依存しています。形状をレンダリングするときが来ると、システムは最も適切なテンプレートを探してそれを html に変換します。ほとんどのコントローラー アクションは、レイアウト形状で定義する必要があるコンテンツ ゾーンの子としてレンダリングされる形状結果を返します。レイアウト形状のレンダリングは、代替を指定することで変更できます ( http://weblogs.asp.net/bleroy/archive/2010/12/14/switching-the-layout-in-orchard-cms.aspxを参照)。

つまり、Orchard は、Razor/ASP.NET Web Pages/MVC3 が推進する逆マスター ページのようなレイアウト システムを使用していません。代わりに、シェイプとその代替を使用して同様の結果を得ることができますが、含まれるオブジェクトが挿入先を指定するのではなく、ネストされたコンテナにシェイプが追加されるため、視点が異なります。

于 2012-07-28T10:44:54.310 に答える