1

特定の機能を実装する既存の MVC3 プロジェクトがあります。このプロジェクトには独自のビューと別のデータベースがあります。

現在、果樹園プロジェクトの 1 つで同じ機能を使用する必要があるため、このソリューションをどこかにホストして、iframe などで表示できると考えました。

私は正しいと思いますか?オーチャード内でこの要件を達成するためにこれは正しい手順ですか?

より明確にするために、私がする必要があるのは、このソリューションを表示し、オーチャード内のホスティング ページからそのコントロールとビューを操作することだけです。その後の要求は、独自のデータ ストアにアクセスして取得するために、ソリューションによって処理される必要があります。ユーザーに表示するために、要求されたデータを返します。

任意の助けをいただければ幸いです。

アップデート:

Bertrand Le Roy の回答に感謝します。果樹園の Web サイト内でソリューションを表示できるようになりました。もう 1 つ大きな問題が発生しました。それは、アプリケーションが外部データベースに接続できなくなったことです。

他の場所でホストされている DB があり、EntityFramework を使用して処理しています。問題は、モジュール web.config またはメイン オーチャード web.config 内に接続文字列を配置すると、次のようないくつかの種類のエラーが発生することです。

" System.Reflection.TargetException: オブジェクトがターゲット タイプと一致しません。 "

また

「System.Data.MetadataException: 指定されたメタデータ リソースを読み込めません。」

私の質問は、エンティティ フレームワークを ORM として使用していると仮定して、接続文字列をソリューションに正しく渡すにはどうすればよいかということです。どうもありがとう。

4

1 に答える 1

1

モジュールに入れる必要があります。

ルート定義を Routes.cs ファイルに移動する必要があります (例については、既存のそのようなファイルを参照してください)。

また、データ ストアにアクセスするには、データ アクセス コード ( ) に関する周囲の Orchard トランザクションをオプトアウトする必要がありますusing (var scope = new TransactionScope(TransactionScopeOption.Suppress))

依存性注入を使用している場合は、Orchard で Autofac ベースの方法に移行する作業が必要になる場合があります。

Orchard 管理画面で作業をシームレスに表示したい場合は、管理コントローラーを Admin 属性で装飾することをお勧めします。フロントエンドで現在のテーマを使用する場合は、Themed 属性を追加し、ページ全体ではなくコンテンツ ゾーンの HTML のみを出力するようにビューをリファクタリングする必要があります。

マニフェスト (module.txt) をモジュール フォルダーに追加すると、準備完了です。

于 2012-09-02T03:01:12.427 に答える