ASP.NET MVCラーニング2、ControllerからViewにデータを渡す

4372 ワード

 

参照:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view
一、ControllerのActionResultメソッドは、1つのView TemplateでHTMLページを生成してブラウザにフィードバックします.
1,Indexを修正する方法は以下の通りです.
public ActionResult Index() { return View();}


2,Indexメソッドで右クリックしてViewビューを追加し,Viewsビューの下のHelloWorldフォルダに対応するIndexを生成する.cshtmlファイル
                   
3、indexを開きます.cshtmlファイルを追加し、htmlコードを次のように追加します.
@{ViewBag.Title = "Index";}

<h2>Index</h2>

<p>Hello from our View Template!</p>


4,右クリックindex.cshtml、ページプローブPage Inspectorが開く(ctrl+K、ctrl+G)、生成されたhtmlページが表示され、Ctrl+F 5リフレッシュ(http://localhost:9898/HelloWorld/Index)、ControllerのIndexメソッドは単純なReturn View()であり、どのView Pageを出力するかは特に指定されていないが、MVCはデフォルトでIndexを呼び出す.cshtml.これがMVCのHard-Codeです.
以上のページの実行は、ページがどのように実行されているかを理解する必要があります.ActionResultメソッドからViewページをブラウザに表示します.
URL→ControllerでのActionResultメソッド→ActionResultメソッド名に対応するViewsで同名のビュー
 
二、了解_Layout.cshtmlページ
注意:上に表示されているindex.cshtmlのページタイトルは「index-私のASP.NET MVC...」というのはindex.cshtmlが呼び出されました_layout.cshtmlテンプレート
次に、Viewのテンプレートページを変更します:/View/Shared/Layout.cshtml
Layout.cshtmlレイアウトページは、layoutページのレイアウトやコンテンツセットを他のページに使用できるコンテナに相当します.
Layout.cshtmlの@RenderBody()はプレースホルダであり、ここでは他の呼び出しLayoutに代わる.cshtmlのページの内容、例えば、リンクhttp://localhost:9898/Home/Aboutを開くと、about.cshtmlの内容はlayoutにネストされています。cshtmlの@renderBody()の位置になります.
LayoutのTitle:ViewBagの値を変更して「-Movie App」を追加します.
<title>@ViewBag.Title - Movie App</title>


サブページ:
@{ ViewBag.Title = "Movie List";}



<h2>My Movie List</h2>


 ViewBag.Titleはlayoutでcshtmlとindex.cshtml間で値を転送し、ページが実行されるとtitleが表示されます.
  ASP.NET MVC 学习2、从Controller传递数据到View
 
三、ControllerからViewにデータを転送する.
Controller ClassesはブラウザからURLを要求されたときに呼び出される
Controller Classのコードは、ブラウザ要求を処理し、データベースからデータを取得し、最終的に対応するViewを呼び出してブラウザに表示することです.
Viewには直接データとのやりとりやビジネスロジックがあるべきではなく、ViewはControllerから渡されたデータのみを受信できる
この分離モードでは、コードを簡潔にし、テスト性能とメンテナンス性能を向上させることができます.
 
ViewBagはDynamic Objectであり、任意のタイプのデータを渡すことができることを意味します.
ViewBagは、値を割り当てるまで属性を定義していません.
 
ASP.NET MVC Model binding systemは、URLのパラメータをControllerのメソッドのパラメータに自動的にマッピングします.ControllerでWelcomeを更新する方法は次のとおりです.
   public ActionResult Welcome(string name, int numTimes)

        {

            ViewBag.Message = "Hello " + name;

            ViewBag.NumTimes = numTimes;

            return View();

        }


実行すると、データ転送プロセスが表示されます.
  http://localhost:9898/HelloWorld/Welcome?name=Spring&numtimes=10 (URL)
↓urlリクエストをHelloWorldControlのWelcomeメソッドに渡す
  public ActionResult Welcome(string name, int numTimes)



        {



            ViewBag.Message = "Hello " + name;



            ViewBag.NumTimes = numTimes;



            return View();



        }


↓WelcomeでのメソッドのデータをViewページに渡す
 
<ul>



    @for (int i = 1; i < ViewBag.NumTimes; i++)



    { 



        <li>@ViewBag.Message</li>



    }



</ul>


.cshtml表示効果:
ASP.NET MVC 学习2、从Controller传递数据到View