控制器往视图传递数据的四种方式: ViewBag ViewData TempData model
//动态类型 ViewBag ViewData 存放一些不重要的数据
例如:
控制器代码: public ActionResult Index() { //动态类型 存放一些不重要的数据 ViewBag.Content = "这是控制器里面的内容"; ViewBag.Name = "张三"; ViewBag.Age = "18"; ViewData["ZName"] = "李四"; ViewData["Zage"] = "19"; return View(); } 视图代码: @{ ViewBag.Title = "Index"; } <h2>Index</h2> @ViewBag.Content @ViewBag.Name @ViewBag.Age 我叫: @ViewData["ZName"] 年龄: @ViewData["Zage"]
TempData传值:存放在服务器中 ,可以跨页面,一次性(页面刷新值消失)
拓展:
TempData 和ViewBag区别:TempData可以跨页面 只能用一次刷新后消失 session有效时间20min
控制器: TempData["Hello"] = "hello world"; 视图: @TempData["Hello"]
model传值:需要定义一个model类
例:
//在models里面定义一个student类 public class Student { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } //控制台写法: using //引用类名 public ActionResult ShowData( ) { return View(new Student() { Id = 1, Name = "张三", Age = 18 }) ; } //后台写法: @model Test.Models.Student//引用类名 @Model.Id @Model.Name @Model.Age