Asp.Net MVC4.0公式チュートリアル入門ガイド2-コントローラを追加

13136 ワード

MVCコンセプト
MVCは「モデル-ビュー-コントローラ」を意味する.MVCはアーキテクチャが良好で、テストとメンテナンスが容易な開発モデルである.MVCモードベースのアプリケーションは次のとおりです.
・Models:アプリケーションのデータを表し、検証ロジックを使用してビジネス・ルールを強制的に実装するデータ・クラス.
・View:アプリケーションがHTMLで使用するテンプレートファイルを動的に生成します.
・Controllers:ブラウザの要求を処理し、データモデルを取得し、ブラウザの要求に応答するビューテンプレートを指定します.
このチュートリアルでは、これらの概念をすべて上書きし、アプリケーションを構築する方法を説明します.
コントローラの追加
コントローラクラスの作成を開始します.
ソリューションエクスプローラで、「Controllers」を右クリックし、「新規」-「コントローラ...」を選択し、コントローラ名「HelloWorldController」を入力し、テンプレートはデフォルトのオプション(「空MVCコントローラ」)を維持し、「追加」ボタンをクリックし、追加したコントローラクラスコードは以下の通りです.
using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;



namespace MvcMovie.Controllers

{

    public class HelloWorldController : Controller

    {

        //

        // GET: /HelloWorld/



        public ActionResult Index()

        {

            return View();

        }



    }

}

修正コードは次のとおりです.
namespace MvcMovie.Controllers

{

    public class HelloWorldController : Controller

    {        

        public string Index()

        {

            return "    <B>  </B>  ";

        }



        public string Welcome()

        {

            return "      ";

        }

    }

}

この例では、コントローラメソッドは文字列のHTMLを返します.このコントローラはHelloWorldControllerと命名され、コードの最初のメソッドはIndexと命名されています.ブラウザから呼び出しましょう.アプリケーションを実行します(F 5またはCTRL+F 5).ブラウザのアドレスバーに「HelloWorld」(たとえば、次の例:http://localhost:5279/HelloWorld)というパスを入力します.上記の方法では、コードは文字列を直接返します.システムにHTMLだけを返すように教えてください.システムは確かにそうしました.
入力URLにより、ASP.NET MVCは、異なるコントローラクラス(およびそれらの中で異なる操作方法)を呼び出します.ASP.NET MVCのデフォルトのURLを使用して、論理フォーマットをルーティングし、どのコードが呼び出されるかを決定します.
/[Controller]/[ActionName]/[Parameters]
URLの第1部は、そのコントローラクラスが実行されることを決定する.したがって/HelloWorldはHelloWorldControlコントローラクラスにマッピングされます.URLの第2部では、コントローラクラスの操作方法を決定します.したがって/HelloWorld/Indexは、HelloWorldControllerコントローラクラスのIndexメソッドを実行します.デフォルトではIndexメソッドが呼び出されます.操作方法が明示的に指定されていない場合、コントローラクラスはデフォルトでIndexメソッドを呼び出します.
http ://localhost:xxxx/HelloWorld/Welcomeを参照してください.Welcomeメソッドが実行され、文字列が返されます.「これはウェルカムメソッドです」.デフォルトのMVCは/[コントローラ]/[ActionName]/[parameters]にマッピングされます.このURLではコントローラクラスはHelloWorld、操作方法はWelcomeです.URLの[parameters]セクションはまだ使用されていません.
この例を少し修正して、URLを使用してコントローラクラス(例:/HelloWorld/Welcome?name=Tom&num=4)にパラメータ情報を渡すことができます.Welcomeメソッドを変更すると、次のように2つのパラメータが含まれます.サンプルコードはC#言語のオプションパラメータ機能を使用しており、numパラメータは値を渡さない場合、デフォルト値は1です.
  public string Welcome(string name,int num=1)

        {

            return "  ," + name + "," + num + " ";

        }

アプリケーションを実行し、このURL(http://localhost:xxxx/HelloWorld/Welcome?name=Tom&num=4)を参照すると、「こんにちは、トム、4回」という結果になります.パラメータnameとnumに対して異なる値を試行できます.ASP.NET MVCモデルバインドメカニズムでは、アドレスバーのURLのクエリー文字列がメソッドのパラメータに自動的にマッピングされます.
ここまで勉強すると、考えるのが上手な読者は次のような試みをする可能性があります.
 public string Welcome(string name)

 {

   return "  ," + name ;

 }

ブラウザに:http://localhost:5279/HelloWorld/Welcome/Tomと入力すると、出力は「こんにちは」であり、所望の「こんにちは、Tom」は出力されていないことがわかりました.
/[コントローラ]/[ActionName]/[parameters]じゃないですか?ここでurlに入力されたパラメータを取得できないのはなぜですか?ここではルーティングの約束に関係していますが、デフォルトでは、パラメータ識別子がIDであるため、正しく入力できます.以下に示すように変更します.
public string Welcome(int ID)

{

   return "ID:" + ID;

}

この問題はここで述べると,読者は深く究明する必要はなく,後で自然にその原理を紹介するところがある. 
この2つの例では、コントローラはMVCの「VC」部分、すなわちビューとコントローラの仕事をしています.コントローラはHTMLコンテンツを直接返します.通常、コードが非常に煩雑になるため、コントローラにHTMLを直接返すことはありません.逆に、通常は別のビューテンプレートファイルを使用して、返されるHTMLの生成を支援します.次に、どうすればそれができるかを見てみましょう.
 
このチュートリアルのすべての記事のナビゲーション
本シリーズは全部で10編の文章で、Aspから翻訳した.Net MVC 4公式教程は、本シリーズの文章が簡潔で、紙幅が適当であるため、一つの例から説明し始め、全文は最終的に映画を管理する小さなシステムを完成し、初心者の入門Aspに非常に適している.Net MVC 4は、これにより開発を開始する.
原文は9編の文章で、訳者はその中の6編を2編に分解した.
1. Asp.Net MVC 4入門紹介
・原文住所:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4
・訳文アドレス:http://www.cnblogs.com/seawaving/archive/2012/12/03/2800210.html
2.コントローラを追加
・原文住所:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller
・訳文アドレス:http://www.cnblogs.com/seawaving/archive/2012/12/04/2801949.html
3.ビューを追加
・原文住所:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view
・訳文アドレス:http://www.cnblogs.com/seawaving/archive/2012/12/04/2801988.html
4.モデルを追加
・原文住所:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-model
・訳文アドレス:http://www.cnblogs.com/seawaving/archive/2012/12/05/2803012.html
5.コントローラからのデータモデルへのアクセス
・原文住所:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-data-from-a-controller
・訳文アドレス:http://www.cnblogs.com/seawaving/archive/2012/12/05/2803429.html
6.EditメソッドとEditビューの表示
・原文住所:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-edit-methods-and-edit-view
・訳文アドレス:http://www.cnblogs.com/seawaving/archive/2012/12/05/2804100.html
        http://www.cnblogs.com/seawaving/archive/2012/12/06/2804590.html
7.Movieモデルとライブラリテーブルにフィールドを追加する
・原文住所:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-new-field-to-the-movie-model-and-table
・訳文アドレス:http://www.cnblogs.com/seawaving/archive/2012/12/06/2805401.html
8.モデルの検証の追加
・原文住所:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-validation-to-the-model
・訳文アドレス:http://www.cnblogs.com/seawaving/archive/2012/12/06/2806322.html
9.DetailおよびDeleteメソッドの表示
・原文住所:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-details-and-delete-methods
・訳文アドレス:http://www.cnblogs.com/seawaving/archive/2012/12/10/2811064.html