MVC - ASP.NET MVC紹介

3585 ワード

1.ソフトウェアアーキテクチャパターンを表すMVC(Model-View-Controller)を定義する.ソフトウェアシステムをモデル、ビュー、コントローラの3つの基本部分に分けます.
2.MVCモードとWebFormモードの違い
  • WebFormモードのURLは、サーバとそのURLに対応するパス上の物理ファイルを要求し、そのファイルによってこの要求を処理し、クライアントに結果を返す.
  • MVCモードクライアントの要求されたURLは、対応するControllerにマッピングされ、その後、Controllerによってビジネスロジックが処理され、Modelからデータを取得し、Controllerによって適切なViewを選択してクライアントに返すことができる.

  • 3. ASP.NET MVCプロジェクトのディレクトリ構造
    App_Data:データを格納するためのContent:リソースファイル(CSS、JS、ピクチャ等)を格納するためのControllers:Controllerクラスを格納するために使用されます.Controllerクラスの名前はController末尾でなければなりません.
    Models:ビジネスエンティティ、データ・アクセス・レイヤ・コードを格納するクラスViews:viewファイルを保存するために使用され、各Controllerはviewフォルダに対応します.Viewsディレクトリの下にあるSharedサブディレクトリは、共有ビューを格納するために使用されます.例えばError.aspxとSite.Master
    4. ASP.NET MVCコアDLL
    System.Web.Routing:URLルーティング.1つのURLを対応するControllerにルーティングします.HttpModuleで処理されています.
    System.Web.Extensions:これはASPです.NET AJAXのSystem.Web.Mvc:ASP.NET MVCの最も主要なプログラムセット.
    System.Web.Abstraactions:関連するベースクラス.たとえば、HttpContextBase、HttpRequestBaseなどです.
    5. Routing
    GlobalでasaxファイルのApplication_Startイベントにroutesを追加すると、プログラムの起動時にroutesが使用可能になり、ユニットテスト時に直接メソッドを呼び出すこともできます.セルテスト時に直接呼び出す場合は、routesを登録する方法は静的であると同時にRouteCollectionパラメータが必要です. 
    public static void RegisterRoutes(RouteCollection routes)
    
    {
    
        //   .axd   Route,    WebForm       .axd  
    
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    
    
    
        routes.MapRoute(
    
            "Category",                                              // Route    
    
            "Category/{action}/{categoryName}",                           //      URL
    
            new { controller = "Category", action = "Index", categoryName = "4mvc" }  //        
    
        ); 
    
    
    
    } 
    
    
    
    protected void Application_Start()
    
    {
    
        //                 Route  
    
        RegisterRoutes(RouteTable.Routes);
    
    }


     6.コントローラとアクション
    Controllerクラスは、ControllerクラスとControllerBaseクラスに分けられます.ControllerクラスはControllerBaseクラスから継承され、ControllerBaseはIControllerインタフェースを実現します.
    Action名は定義可能で、ActionNameAttributeを使用して定義します.
    public ActionResult Setting()
    
    {
    
        throw new NotImplementedException();
    
    } 
    
    
    
    [ActionName("Setting")]
    
    public ActionResult SaveSetting()
    
    {
    
        throw new NotImplementedException();
    
    }
    
    

  • Actionメソッドのパラメータは、Routeで定義パラメータ名と同じ、ASP.NET MVCは、アクションメソッドのパラメータに自動的に値を割り当てることができます.  

  • ActionメソッドはActionResultタイプの結果を返します.ASP.NET MVCは私たちにいくつかのActionResultの実現を提供して、以下の通りです:ViewResult.ビューページをクライアントに表示します.Viewメソッドで返す.RedirectToRouteResult. 別のルートにリダイレクトします.RedirectToActionメソッドとRedirectToRouteメソッドによって返される.RedirectResult. 別のURLにリダイレクトします.Redirectメソッドで返す.ContentResult. 通常の内容を返します.たとえば、文字列です.Contentメソッドで返す.JsonResult. JSON結果を返します.Jsonメソッドで返す.EmptyResult. Actionが空の値を返さなければならない場合は、この結果を返すことができます.Controllerでは実現する方法がなく、return new EmptyResult()が可能である.
    7.ViewとViewData
    8. TempData
    9.Helperとデータの提出とバインド
    10.ModelStateとデータ検証
          
     
    http://www.cnblogs.com/fish-li/archive/2012/02/12/2348395.html引用:http://www.cnblogs.com/QLeelulu/archive/2008/09/30/1302462.html#参考:http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-1