4

したがって、MCV3 の動作方法は、ルーティングを介して呼び出すコントローラーを定義することです。そのコントローラーは「myControllerName」+「Controller」です。

そのクラスは既に controllers というフォルダーにあります。クラス名の最後にその装飾を付けたくありません。それは実際には何も貢献していません。

それをどのように変更するかを知り、MVC3 の内部で何が起こっているかをもっと理解したいと思っています。

4

3 に答える 3

5

簡単に言えば、気にしないでください。これは慣習による構成 (Convention over Configuration 、CoCとも呼ばれます) であり、流れに沿って MVC が望むことを行うだけで、より幸せで健康的なストレスのない生活を送ることができます。

より長い答えは、MVC パイプラインにカスタム コントローラー ファクトリを挿入して、デフォルトのコントローラー ファクトリをオーバーライドすることです。プロセスの完全な説明はこの記事にありますが、基本的には次のことを行います。

  1. IControllerFactoryやりたいことを実装します。
  2. あなたのApplication_Startイベントでは、呼び出しControllerBuilder.Current.SetControllerFactoryてデフォルトのコントローラ ファクトリを独自のものに置き換えます。

MVC は拡張性の高いフレームワークです。ほとんどのコンポーネントのデフォルトの動作は、おそらく必要なことを実行しますが、ほとんどの場合、組み込みオブジェクトを独自のものに置き換えることができます。オーバーライドできるその他の項目については、MVC3 の 13 の拡張ポイントのリストを参照してください。

また、最初に言及するのを忘れていましたが、MVC の根幹に本当に興味がある場合は、フレームワーク全体がオープン ソース (APL の下) であり、codeplex で見つけることができます。

于 2012-05-27T03:19:50.190 に答える
0

フォルダ名は、人間としてのあなただけに役立ちます。コンパイラは気にせず、すべてが 1 つの DLL にコンパイルされ、フォルダーは無関係です (ただし、既定では "コントローラー" を含む名前空間に配置されます)。フォルダーは最終サイトにまったくアップロードされません。

このフォルダーはサーバー上に存在しないため、フレームワークが Controllers フォルダーにあるためコントローラーであると想定することはできません。そのように機能しないだけでなく、そのように機能させる方法もありません (これもサーバーに Controllers フォルダーが存在しないためです)。

xxxController という命名規則は、物事を簡単にするためのものです。MVC が指示する慣習に従いたくない場合、おそらく MVC は適切なフレームワークではありません。流れと戦いたいのであれば、それはあなたの人生をより困難にするだけです.

C Sharp ファイルに .cs 拡張子を付けたくない、または Webforms フォームに .aspx を付けたくない、と文句を言っているようなものです。

于 2012-05-27T04:20:51.033 に答える
0

コントローラーの接尾辞は、MVC の規則と見なされます (構成方法に関する規則の詳細については、こちらを参照してください http://en.wikipedia.org/wiki/Convention_over_configuration )。すべての MVC プロジェクトに一貫した構造を提供するため、価値があります。さらに、MVC パターン内のクラスの機能についても説明します。

MVC は規約に関するものです。構成に関するものが必要な場合は、おそらく ASP.Net webforms をご覧ください。

于 2012-05-27T03:12:14.347 に答える