[解決済み] asp.net mvcはコントローラを別のプロジェクトに置く
質問
私はasp.net mvcを学んでいるところですが、コントローラを別のプロジェクトに移動させる方法を見つけようとしています。 以前、asp.netのウェブアプリを設計したときは、通常、モデル用に1つのプロジェクトを作成し、ロジック用に別のプロジェクトを作成し、そして、ウェブがありました。
今、私は asp.net mvc を学んでいるので、同じようなパターンに従って、モデルとコントローラをそれぞれ別のプロジェクトに入れ、ビュー/スクリプト/CSS をウェブに残すだけでいいと思っていました。 モデルの部分は簡単でしたが、私が理解していないのは、別のプロジェクトにある私のコントローラを"found"にする方法です。 また、これは望ましいことなのかどうか知りたいです。 ありがとうございます。
どのように解決するのですか?
まず第一に、モデルを別のプロジェクトに置くことは確かに良いアイデアです。あなたが発見したように、これは些細なことです。
コントローラとビューについては、特定のアプリケーションでそうする特別な必要性があるかもしれませんが、ほとんどの基本的なプロジェクトでは、それらを分離する明白な利点はないと思います。
もしこれを行うのであれば、フレームワークにコントローラを見つける方法を教える必要があります。これを行うための基本的な方法は、独自のControllerFactoryを提供することです。DefaultControllerFactory のソースコードを見れば、これがどのように行われるのかがわかるでしょう。このクラスをサブタイプし、GetControllerType(string controllerName) メソッドをオーバーライドすることで、ご質問の内容を十分に実現できるかもしれません。
独自のカスタムControllerFactoryを作成したら、次の行をglobal.asaxのApplication_Startに追加して、フレームワークにそれを見つける場所を教えます。
ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());
更新しました。 読む この記事 と をご覧ください。については、その投稿に対する Phil Haack のコメントも参照してください。
ControllerBuilder.Current.DefaultNamespaces.Add(
"ExternalAssembly.Controllers");
...これは完全な解決策ではありませんが、単純なケースではおそらく十分でしょう。
関連
-
[解決済み] ASP.NET MVC: このオブジェクトには、パラメータなしのコンストラクタが定義されていません。
-
[解決済み] JsonResultが特殊文字(apostrophe)を \u0027 としてパースしています。
-
[解決済み] Visual Studioのデバッグ/ロードが非常に遅い
-
[解決済み] ルート値を含むURL.Action()
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] 修正方法: ハンドラ "PageHandlerFactory-Integrated" のモジュールリストに "ManagedPipelineHandler" という不正なモジュールが含まれています。
-
[解決済み] ASP.NET MVC ビューエンジンの比較
-
[解決済み】cshtmlテンプレートで関数を作成する方法は?
-
[解決済み】ViewModelのベストプラクティス
-
[解決済み] セキュリティ透過的なメソッド 'WebMatrix.WebData.PreApplicationStartCode.Start()' による試行。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】VS 2015でコントローラからビューを追加できない : "選択されたコードジェネレータの実行にエラーが発生しました"
-
[解決済み] HTTPヘッダを送信した後、サーバーがステータスを設定できない IIS7.5
-
[解決済み] Razor View throwing "The name 'model' does not exist in the current context".
-
[解決済み] MVC 3 - 辞書に渡されたモデル項目の型は 'System.Collections.Generic.List`1 です。
-
[解決済み] ASP.NET MVC ビューエンジンの比較
-
[解決済み】ASP.NET MVC 3 コントローラから200 HTTPステータスコードを返す方法
-
[解決済み】ASP.NET MVC Html.ValidationSummary(true) でモデルエラーが表示されない。
-
[解決済み] ASP.NET MVCコントローラから外部URIへのリダイレクト
-
[解決済み] ASP.Net MVCでRequest on Controllerをモック化する方法とは?
-
[解決済み] Visual Studio 2012 または Visual Studio 2013 で古い MVC プロジェクトを開くにはどうすればよいですか?