Asp.net mvc Controller与 View之间的传递
2016-04-12 17:04
661 查看
在上一节的博客中创建了静态的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#程序:
![](https://img-blog.csdn.net/20160412165849450?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2、在Controller中按照前几节说过的方法创建一个控制器,用来获取Teacher对象
其中:ViewData["Teacher"] = t; return View(); 用ViewData建立一个Teacher类型的数据字典,并返回。
注:需要添加引用 using Mvc_一.Models;
3、在View中显示该数据
同样根据前面的学习在View下面创建Teacher的子目录
在div区域添加如下代码:
![](https://img-blog.csdn.net/20160412170150298?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
4、运行结果如下:
![](https://img-blog.csdn.net/20160412170227978?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
A | explian:
1、在 Mvc_一.Models.Teacher t = (Mvc_一.Models.Teacher)ViewData["Teacher"];时候强制转换类型,是因为,ViewData可以操作内部对象,每次添加新值,都会被封装成对象的类型,即封装成Teacher的对象,每次获取里面的内容则需要提取。
2、在TeacherController中定义了Teacher的对象并赋值属于硬编码,但一般情况下,是从数据库或者Web服务器获取的。
3、三层架构中有数据访问层,在ASP.NET MVC中却不包含数据访问层,但它其实是隐式存在的,MVC中不包含数据访问层的定义。
完整的MVC结构:
![](https://img-blog.csdn.net/20160412170338587?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
转载请标明出处 http://blog.csdn.net/jasonhds/ 版权所有,翻版必究~谢谢合作!
回顾前面说过的,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/ 版权所有,翻版必究~谢谢合作!
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 配置View桌面时找不到域的解决方法
- 星外ASP.Net的安全设置相关说明
- C#、ASP.NET通用扩展工具类之TypeParse
- 实现ASP.NET无刷新下载并提示下载完成的开发思路
- C#、ASP.NET通用扩展工具类之LogicSugar
- C#实现窗体间传递数据实例
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- 程序中常用的种代码
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- ASP.NET页面间的传值的几种方法
- C#中的数组作为参数传递所引发的问题
- 入侵ASP.net网站的经验附利用代码
- Zend的MVC机制使用分析(二)
- 盘点PHP和ASP.NET的10大对比!
- ASP.NET MVC4入门教程(四):添加一个模型
- ASP.NET MVC4入门教程(五):从控制器访问数据模型
- asp.net OleDbCommand 的用法
- ASP.NET MVC4入门教程(二):添加一个控制器
- 解决VMware View虚拟桌面“黑屏”问题 推荐