2012-01-17 20 views
3

私のASP.net MVCアプリケーションでは、ASPXビューエンジンを実行していますが、複数のアクションメソッドを持つコントローラがあります。これらのアクションメソッドのそれぞれに対して、私は複数のビューを割り当てて、コントローラのアクションメソッドでそれぞれを名前で呼び出すことができることに気付きました。Asp.Net MVCコントローラ - アクションとビューのマッピングメタデータ

このマッピングデータがプロジェクトに保存されている場所を知りたいと思います。私はプロジェクトファイルをスキャンし、この情報がどこにもないことを発見しました。複数のビューを含む大きなプロジェクトでは、特定のアクションに関するすべてのビューを見つける場所をどのように知っていますか。私は当初、これがVisual Studioによって生成され維持されるいくつかの設定ファイルに格納されると考えました。しかし、それはそうではないようです。では、このデータはどこに保存されていますか?複数のビューを持つ大規模プロジェクトでは、本当に必要なファイルと見つからないファイルを把握するのは難しいことです。

これについてのご意見はありますか?

答えて

4

サンティアゴは、ASP.NET MVCコントローラがこのように見えるとき、より多くのそれを拡大するために多額の規則ベースのですが、それが正しいです、慣例により

public class FooController : Controller 
{ 
    public ActionResult Bar() 
    { 
     return View(); 
    } 
} 

ビュー・エンジンは、ビューを検索します次の場所の下にBar呼ば:

~/Views/Foo 
~/Views/Shared 

この簡単にあなたは、この有益な例外画面を得るでしょう、新しいアクションを追加し、ビューを追加しないことによって見られている:

The view 'Bar' or its master was not found or no view engine supports the searched 
locations. The following locations were searched: 
    ~/Views/Foo/Bar.aspx 
    ~/Views/Foo/Bar.ascx 
    ~/Views/Shared/Bar.aspx 
    ~/Views/Shared/Bar.ascx 
    ~/Views/Foo/Bar.cshtml 
    ~/Views/Foo/Bar.vbhtml 
    ~/Views/Shared/Bar.cshtml 
    ~/Views/Shared/Bar.vbhtml 

同様に、あなたは​​を持っている場合、それは同じ場所の下ViewNameHereを探します。

プロジェクトはビューエンジンの動作をオーバーライドしない限り、ビューとアクションの数百人が、複数のビューを返すことができていたとしても、すべてのビューは、そのコントローラかに置かに従ってをグループ化され、あなたの質問に答えるために共有フォルダ

3

asp.net mvcは多大な慣習に基づいています。コントローラが返すビューは、明示的なビュー名が使用されていない限り、メソッド名によって暗示されます。さらに詳細については チェックアウト:asp-net-mvc-views-overview-cs

関連する問題