17

ASP.NET Webformでは、App_Codeコードを配置して実行時に使用するための標準フォルダーですが、このフォルダーはASP.NET MVCとは少し異なると思いますが、私の質問は次のとおりです。

  • コード(拡張メソッド、ヘルパー、...)をASP.NETMVCのどこに配置する必要がありますか。コードをApp_Codeフォルダに保存すると、でテーマを使用できませんcontrollerが、で正常に機能しviewsます。

  • Entity Frameworkについても同じ質問ですが、edmxファイルとttファイルはどこに置くべきですか。コードファーストを使用していません

アップデート:

いくつか検索した後、最終的にソリューションで新しいクラスライブラリプロジェクトを作成しました。コードはすべてcontrollersとで利用できますviewsのコードがコントローラーで利用できない理由はまだわかりませんApp_Code

4

6 に答える 6

36

同じ問題がありました。クラス Utility.cs が MVC プロジェクト内で認識されませんでした。ビルドアクションの「コンテンツ」を「コンパイル」に変更したところ、問題が解決しました。それが役立つことを願っています。

于 2013-06-20T10:16:17.160 に答える
12

App_Code は特別な意味を持つため、Web サイト プロジェクトで必要です。「これらのファイルを Web ブラウザに提供しない」という意味です。ASP.NET MVC では、ほとんどの場合、ファイルはブラウザーに直接提供されないため、App_Code は必要ありません。これらのファイルは DLL にコンパイルされ、通常は Web サイト自体に公開されないため、コード ファイルは任意の場所の任意のフォルダーに配置できます。

スタンドアロン ライブラリを使用することも優れたソリューションです。

于 2012-05-16T18:07:53.290 に答える
2

このチュートリアルから始めることをお勧めします。最初に EF コードを使用しますが、必要に応じて最初にコードDbContextを通常の edmx に置き換えることができObjectContextます (ヒント: Models フォルダー)。

App_CodeWeb サイト プロジェクトに固有です。IMO によると、最も単純な Web サイトを除いて、すべてを整理する方法としてはひどいものです。MVC プロジェクトはWeb アプリケーション プロジェクトであるため、存在せずApp_Code、ほとんどどこにでもクラスを定義できます。

于 2012-05-16T15:06:03.873 に答える
0

さて、既存のオープンソース プロジェクトをいくつかダウンロードしてみてください。そのうちの 1 つはかなり複雑ですが、理解できれば非常にクールです -果樹園

ベスト プラクティスは、このロジックを DAL (データ アクセス層) または BLL (ビジネス ロジック層) に移動することです。アプリケーションの複雑さによって異なります。

于 2012-05-16T15:05:55.163 に答える