mvcのいくつかのデータ転送

7430 ワード

1、ViewDataオブジェクト
ViewBagDataは、ディクショナリ集合データがビューベースクラスとコントローラベースクラスの両方に属する属性です.
例:
//コントローラ
public class HomeController:Controller

{

        public ActionResult Index()

        {

             ViewData["data"]="Hello asp.net";

             return View();

        }

}       

表示:
<h1><%=ViewData["data"]%></h1>

2、ダイナミックオブジェクトViewBag
ViewBagはdynamicタイプのオブジェクトで、同僚はビューベースクラスとコントローラベースクラスのプロパティに属します.使用法は次のとおりです.
//コントローラコード
public class HomeController:Controller

{

        public ActionResult Index()

        {

             ViewBag.data="Hello asp.net";

             return View();

        }

}            

 
<h1><%=ViewBag.data%></h1>

本質的には、ViewBagは、ViewDataデータに対するパッケージであり、つまり、ViewDataを用いてデータを保存し、ViewBagを用いて読み取り、ViewBagを用いて保存したデータを用いてもよいし、ViewDataを用いて読み取り、例えば
ViewData["data"]のデータは、ViewBagを使用する.dataにもアクセスできます.
注意:同じプロジェクトでは、一般的にViewDataとViewBagは1つだけで、コードに同じViewDataとViewBagが同時に現れることはありません.
3、クロスリクエストデータ転送——TempData
TempDataも辞書タイプに属しており、符号化上はViewDataと似ているが、彼は完全に独立したオブジェクトであり、保存されているデータドメインViewdataは互いに干渉しない.
使用法は次のとおりです.
//コントローラ
public class HomeController:Controller

{

        public ActionResult Index()

        {

             TempData["data"]="Hello asp.net";

             return View();

        }

}        

//ビュー
<h1><%=TempData["data"]%></h1>

開発においてTempDataは主に要求にまたがってデータを伝達する
 
public class HomeController:Controller

{

        public ActionResult Index()

        {

             TempData["data"]=" Index() ";

             Response.Redirect("~/Home/Detail");

             return View();

        }

        public ActionResult  Detail()

       {

             return View();

       }

}     

     //Detail.aspxビュー
<h1><%=TempData["data"]%></h1>

asp.Netmvcシステムでは、TempDataの保存メカニズムは実際には拡張可能であり、デフォルトの保存メカニズムはsessionである.TempDataの保存メカニズムはセッションですが、前回のリクエストに対してTempDataを使用します.
使用しているTempで保存されているデータですが、どのようにTempのデータが使用されているか(ビューから出力される)次のリクエストではデータが取得されず、もう一度リクエストでどのようにTempDataデータが使用されているか、クリアされます
使用されていなければ、彼が保存している時間はSessionの生存期間です.