したがって、MCV3 の動作方法は、ルーティングを介して呼び出すコントローラーを定義することです。そのコントローラーは「myControllerName」+「Controller」です。
そのクラスは既に controllers というフォルダーにあります。クラス名の最後にその装飾を付けたくありません。それは実際には何も貢献していません。
それをどのように変更するかを知り、MVC3 の内部で何が起こっているかをもっと理解したいと思っています。
したがって、MCV3 の動作方法は、ルーティングを介して呼び出すコントローラーを定義することです。そのコントローラーは「myControllerName」+「Controller」です。
そのクラスは既に controllers というフォルダーにあります。クラス名の最後にその装飾を付けたくありません。それは実際には何も貢献していません。
それをどのように変更するかを知り、MVC3 の内部で何が起こっているかをもっと理解したいと思っています。
簡単に言えば、気にしないでください。これは慣習による構成 (Convention over Configuration 、CoCとも呼ばれます) であり、流れに沿って MVC が望むことを行うだけで、より幸せで健康的なストレスのない生活を送ることができます。
より長い答えは、MVC パイプラインにカスタム コントローラー ファクトリを挿入して、デフォルトのコントローラー ファクトリをオーバーライドすることです。プロセスの完全な説明はこの記事にありますが、基本的には次のことを行います。
IControllerFactory
やりたいことを実装します。Application_Start
イベントでは、呼び出しControllerBuilder.Current.SetControllerFactory
てデフォルトのコントローラ ファクトリを独自のものに置き換えます。MVC は拡張性の高いフレームワークです。ほとんどのコンポーネントのデフォルトの動作は、おそらく必要なことを実行しますが、ほとんどの場合、組み込みオブジェクトを独自のものに置き換えることができます。オーバーライドできるその他の項目については、MVC3 の 13 の拡張ポイントのリストを参照してください。
また、最初に言及するのを忘れていましたが、MVC の根幹に本当に興味がある場合は、フレームワーク全体がオープン ソース (APL の下) であり、codeplex で見つけることができます。
フォルダ名は、人間としてのあなただけに役立ちます。コンパイラは気にせず、すべてが 1 つの DLL にコンパイルされ、フォルダーは無関係です (ただし、既定では "コントローラー" を含む名前空間に配置されます)。フォルダーは最終サイトにまったくアップロードされません。
このフォルダーはサーバー上に存在しないため、フレームワークが Controllers フォルダーにあるためコントローラーであると想定することはできません。そのように機能しないだけでなく、そのように機能させる方法もありません (これもサーバーに Controllers フォルダーが存在しないためです)。
xxxController という命名規則は、物事を簡単にするためのものです。MVC が指示する慣習に従いたくない場合、おそらく MVC は適切なフレームワークではありません。流れと戦いたいのであれば、それはあなたの人生をより困難にするだけです.
C Sharp ファイルに .cs 拡張子を付けたくない、または Webforms フォームに .aspx を付けたくない、と文句を言っているようなものです。
コントローラーの接尾辞は、MVC の規則と見なされます (構成方法に関する規則の詳細については、こちらを参照してください http://en.wikipedia.org/wiki/Convention_over_configuration )。すべての MVC プロジェクトに一貫した構造を提供するため、価値があります。さらに、MVC パターン内のクラスの機能についても説明します。
MVC は規約に関するものです。構成に関するものが必要な場合は、おそらく ASP.Net webforms をご覧ください。