19

ASP.NET MVC 3 プロジェクトに取り組んでいます。簡単にするために、コントローラー、モデル、およびビューをサブフォルダーに分割したいと思います。コントローラーとモデルでそれを行うことができますが、ビューを作成すると、ルートフォルダーViewsに自動的に作成されます。この問題を解決する方法はありますか?

例えば。作成できます

モデルクラスとして、

Models/Finance/Bank.cs
Models/Finance/Finance.cs
Models/Production/Production.cs

コントローラとして、

Controllers/Finance/BankController/Create
Controllers/Finance/BudgetController/Create
Controllers/Production/ProcessController/Create

しかし、上記のアクションのビューを作成しようとしたところ、に作成され、

Views/Bank/Create.aspx
Views/Budget/Create.aspx
Views/Process/Create.aspx

私はそれが好きであるべきです、

Views/Finance/Bank/Create.aspx
Views/Finance/Budget/Create.aspx
Views/Prodution/Process/Create.aspx

コントローラーとモデル用に作成されたものと同じサブフォルダーにビューを作成する方法はありますか? ありがとう!

4

4 に答える 4

33

次の手順は私にとってはうまくいきました、

  1. 必要に応じてサブフォルダーを作成しますViews(ルート フォルダー)。私の場合は、Finance & Production でした。

  2. Views自動作成されたフォルダを適切なサブフォルダにドラッグするだけです。私の場合Bank& Budgetin to Financeand Processin toProduction

  3. コントローラーアクションからビューを返すときに、ビューのフルパスを次のように指定します。

    return View("~/Views/Finance/Bank/Create.aspx")

    return View("~/Views/Finance/Budget/Create.aspx")

    return View("~/Views/Production/Process/Create.aspx")

于 2012-10-25T06:18:34.430 に答える
20

モデルとコントローラーはコンパイルされたソース ファイルです。それらは DLL にコンパイルされるため、文字通りプロジェクトのどこにでも配置でき、違いはありません。これらのクラスは、コンパイルされるとファイルシステムに存在しないため、ファイルシステム内の場所の概念がありません。

一方、ビューは異なります。これらは、サーバーにデプロイされ、実行時に読み込まれて解析されるテキスト ファイルであるため、フレームワークはそれらを見つける場所を認識している必要があります。

ツールは常に ~\Views\Controller フォルダー (または ~Areas\AreaName\Controller フォルダー) にビューを作成します。その後、それらを好きな場所に移動できますが、View() メソッド (.cshtml を含む) にフォルダー パス全体を指定する必要があります。または、必要な場所に検索パスを設定するカスタム ViewEngine を実装する必要があります。

于 2012-10-25T05:47:03.513 に答える
3

将来の訪問者のために:エリアを使用してください。

チュートリアル: エリアを使用した ASP.NET MVC アプリケーションの編成

于 2016-06-20T08:57:24.140 に答える
-1

View の名前は Controller の名前に従って、ルールに従う必要があります。
作成したい場合は、 という名前Views/Admin/CreateにするCustomerController.cs必要がありますAdminController.cs

于 2012-10-25T06:10:36.133 に答える