2009-07-30 15 views
1
routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "My", action = "MyFolder", id = "" } // Parameter defaults 
); 

上記のコードは、同じプロジェクトのMyControllerにあるMyFolderアクションにあるビューを呼び出すのに役立ちます。ASP.NET MVCのアーキテクチャ

私のアクティブプロジェクトに含まれているdllの形式でMyControllerが異なるプロジェクトにある場合はどうなりますか?それぞれのビューを呼び出す方法は?

+0

試しましたか? MVCがすべての参照でMyControllerを検索するのは私の理解です。 –

+0

これを確認してください: - [SO - asp.net mvc別のプロジェクトにコントローラを入れて](http://stackoverflow.com/questions/401376/asp-net-mvc-put-controllers-into-a-separate-project) 保守性 スケーラビリティ インクリメンタル開発((例)は、仮想地球の実装になりますのは、私たちは私のプロジェクトでは非常に便利であるalltogether別のDLL内の特定の機能を持っているとしましょう: は以下の点を考慮してください: –

+0

は前から続きます) ControllerFactoryを導入したことで、上記の点で非常に有益なInterface-Implementationデザインが不要になりました。 – PadmakarKulkarni

答えて

1

MyControllerコントローラクラスが別のプロジェクトにある場合、ルート作成は失敗します。これは、アプリケーションの起動時にMVCが実行アセンブリ内のすべてのクラスを「コントローラ」の後ろに反映するためです。対応するコントローラ名が見つからない場合、アプリケーションは起動に失敗します。

私は、別のプロジェクトでコントローラを移動/アクセスしようとしました(良い例は、管理ツールプロジェクトの中で、アプリケーションのいくつかの側面を分離したいかもしれません)。これによりエラーが発生しました。

これが正しくないことを誰かが知っている場合、が好きなので、が間違っていると私に知らせてください。しかし、すべての私の観察と作業は、たとえ2つのプロジェクトが同じ解決策であっても、そうではないという結論を指摘しています。

+0

その説明のおかげで人々。私はこれらの日々とこれを行うさまざまな方法を試して横並びにグーグルで出かけていました。しかし、今私はより良い理解を持っていると思う。 最後にこのトピックを終了する最後の質問 MVCパターンはすべて懸念を分離するという事実を理解しているので、モデルはデフォルトの場所から分離する必要があります(必須ではないことを理解しています)。 – PadmakarKulkarni

+0

デフォルトの場所からモデルを分離することができます。 MVCサイトと同じプロジェクトに座る必要はありません。私はこれが事実であるいくつかの個人的なサイトを持っています。彼らがどこにいるかは関係ありません。以前 から続く –

0

ダンは正しいと言いました。別のプロジェクトでコントローラを使用するには、DefaultControllerFactoryを拡張する必要があります。

+0

さらに、下記のリンク で行くhttp://stackoverflow.com/questions/401376/asp-net-mvc-put-controllers-into-a-separate-project それは、私に教えてくださいコントローラをControllerFactoryの形式で分離する良い設計や、ASP.NET MVCが提供する現在の場所が最良の設計です。 – PadmakarKulkarni

関連する問題