1

わかりましたので、別の MVC プロジェクトからロードしようとしている UserControls がいくつかあります。UserControls プロジェクトをマップ ルート パラメーターに追加したので、そこを参照する必要があります。

両方のプロジェクトで Ninject の使用を開始しましたが、次のエラーが返されました。

部分ビュー 'UserDetails' が見つからなかったか、検索された場所をサポートするビュー エンジンがありません。

userControls プロジェクトから Ninject のものを削除すると、正しいコントローラー メソッドが読み込まれますが、モデルにアクセスするには ninject が必要なため失敗します。

Ninject を 2 番目のプロジェクトに保持するか、最初のプロジェクトのバインディングを 2 番目のプロジェクトで使用する方法はありますか?

更新しました:

ASP.NET MVC には、同じソリューション内の異なるプロジェクトである 2 つのアプリケーションがあります。私は両方のプロジェクトで Ninject を使用しています。を使用して、あるプロジェクトから別のプロジェクトに部分ビューをロードしようとしています

@{ Html.RenderAction("UserDetails", "UserDetails", ...}

これを実行して UserDetails コントローラーのコンストラクターにブレーク ポイントを配置すると、ヒットします。コンストラクターには、次のコード行があります。

 _guestDetailsField = guestDetailsField;
 _guest = guest;
 _bookingSelection = bookingSelection;

これらを過ぎてデバッグすると、「利用可能なソースがありません」というページが表示され、続行すると、ページがロードされ、上記のエラー メッセージが表示されます。

4

1 に答える 1

1

アプリケーション間でビューを共有することはできません。実際には可能ですが、非常に手間のかかるカスタムの仮想パス プロバイダーを作成する必要があります。たとえば、Razor ビューを個別のアセンブリに埋め込み、それらを複数の MVC アプリケーションで再利用できるカスタム プロバイダーを示す次の記事をご覧ください。

于 2012-06-12T15:29:50.533 に答える