5

次のプロジェクト設定があります

プロジェクトA(メイン)

  1. 仕事
  2. データ
  3. 表示(asp.net mvc 3プロジェクト)

プロジェクトN

  1. 仕事
  2. データ
  3. 表示(asp.net mvc 3プロジェクト)

プロジェクトAからプロジェクトNのビューを呼び出し、NからAに戻すにはどうすればよいですか。基本的に私がやろうとしているのは、各プロジェクトNをパッケージ化して、さまざまなソースからの独自のMVCを作成し、メインプロジェクトを作成してから、正しいビューに移動します。

これはできますか?それとも、これを行うためのより良い方法はありますか?

4

2 に答える 2

3

カスタム仮想パスプロバイダーを作成できます。これは、Razorビューをリソースとしてアセンブリに埋め込み、複数のアプリケーションで再利用できるような仮想パスプロバイダーの例を示す素晴らしいブログ投稿です。

残念ながら、カスタム仮想パスプロバイダーがないと、複数のASP.NETMVCアプリケーション間でビューを相互参照することはできません。これは、現在のアプリケーション内でのみビューを検索するデフォルトのプロバイダーでは許可されていません。

于 2012-06-22T21:24:29.890 に答える
0

可能であれば、別のアプローチを提案します。私が正しく理解していれば、それらのプロジェクトはどういうわけかプラグインのようですが、スタンドアロンのアプリケーションではありません。トリッキーだとしましょう。ただし、使用するasp.net mvcプロジェクト(Web UI)は1つだけです。他のプロジェクトに属するすべてのUIビットをヘルパー(ほとんどウィジェット)にします。つまり、各プロジェクトには、ビューの作成に使用されるヘルパーのみが含まれます。

別のアセンブリでビューをホストするためだけに各プロジェクトのビューを保持したい場合は、アーキテクチャ上の問題だと思います。ウィジェットのように進むと、うまくいくように見えるかもしれませんが、必要な制御と分離レベルを最大限に得ることができると思います。唯一のことは、完全なビューが定義されていないことですが、完全なビュー(部分、レイアウト)を1つの場所でのみ使用する場合、別々の場所に配置する必要があるのはなぜですか?!

現在、各プロジェクトが実際にプラグインであり、他のプラグインから独立している場合は、コンパイルされたビューを使用するのが最善の方法です。しかし、プロジェクトBがプロジェクトNの見方を知っている場合は、上記の解決策の方が適していると思います。それまたはアプリ全体が過剰に設計されています。分離は、それをナビゲートするためのまったく新しいジャングルを作成しない場合に適しています。

于 2012-06-24T13:27:40.583 に答える