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/ 版权所有,翻版必究~谢谢合作!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值