Asp.net mvc Controller與 View之間的傳遞

         在上一節的博客中創建了靜態的View,但很多時候靜態的View是滿足不了需求的,即經常使用到View顯示動態數據,在相關學習後,嘗試View顯示動態數據。
         回顧前面說過的,View是從Controller獲得Model的數據,MVC用Model表示業務數據。MVC從控制器傳遞多個Model到視圖,可以通過ViewData,ViewBag,PartialView, TempData, ViewModel,Tuple等。ViewData相當於數據字典,包含Controller和View之間傳遞的所有數據,Controller會在該字典中添加新的數據項,View從字典中讀取數據並顯示給用戶。
1、創建Model類

在Model文件夾下創建Teacher類,首先觀察Model文件夾下的內容以.cs結尾,好說了即C#程序:

    public class Teacher
    {
        public string TeacherName { get; set; }
        public int TeacherId { get; set; }
        public int TeacherAge { get; set; }
    }  

2、在Controller中按照前幾節說過的方法創建一個控制器,用來獲取Teacher對象

     public ActionResult GetTeacherView()
        {
            Teacher t = new Teacher();
            t.TeacherName = "譚浩強";
            t.TeacherId = 1001;
            t.TeacherAge = 60;
            ViewData["Teacher"] = t;
            return View();
        }  

其中:ViewData["Teacher"] = t;   return View();   用ViewData建立一個Teacher類型的數據字典,並返回。

注:需要添加引用 using Mvc_一.Models;

3、在View中顯示該數據
同樣根據前面的學習在View下面創建Teacher的子目錄
在div區域添加如下代碼:

@{
     Mvc_一.Models.Teacher t = (Mvc_一.Models.Teacher)ViewData["Teacher"];
 }
     <b>Teacher Details</b><br />
            Teacher Name:@t.TeacherName<br />
            Teacher Id:@t.TeacherId<br />
            Teacher Age:@t.TeacherAge<br />  


4、運行結果如下:



A | explian:
1、在 Mvc_一.Models.Teacher t = (Mvc_一.Models.Teacher)ViewData["Teacher"];時候強制轉換類型,是因爲,ViewData可以操作內部對象,每次添加新值,都會被封裝成對象的類型,即封裝成Teacher的對象,每次獲取裏面的內容則需要提取。
2、在TeacherController中定義了Teacher的對象並賦值屬於硬編碼,但一般情況下,是從數據庫或者Web服務器獲取的。
3、三層架構中有數據訪問層,在ASP.NET MVC中卻不包含數據訪問層,但它其實是隱式存在的,MVC中不包含數據訪問層的定義。

完整的MVC結構:


轉載請標明出處 http://blog.csdn.net/jasonhds/ 版權所有,翻版必究~謝謝合作!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章