版权声明: https://blog.csdn.net/niuge8905/article/details/82020107
参考:https://blog.csdn.net/xiaouncle/article/details/77825389
在以上文章的基础上做点相关补充。
1.ViewBag是一个动态字段,而ViewData是一个字典
首先看后台代码:
public ActionResult Test()
{
//字典
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("laowang","老王");
dic.Add("laoli","老李");
dic.Add("laozhang","老张");
//数组
int[] numbers = new int[3];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
//集合
List<string> list = new List<string>();
list.Add("aaa");
list.Add("bbb");
list.Add("ccc");
//字段
string user = "老赵";
int age = 30;
//ViewBag
ViewBag.Dic = dic;
ViewBag.Numbers = numbers;
ViewBag.List = list;
ViewBag.User = user;
ViewBag.Age = age;
//ViewData
ViewData["Dic"] = dic;
ViewData["Numbers"] = numbers;
ViewData["List"] = list;
ViewData["User"] = user;
ViewData["Age"] = age;
return View();
}
然后看前台代码:
@{
Layout = null;
}
<div>
<!--ViewBag-->
<text>@ViewBag.User</text>
<br />
<text>@ViewBag.Age</text>
<br />
@foreach (var dic in @ViewBag.Dic)
{
<br />
<a>@dic.Key</a>
<a>@dic.Value</a>
}
@foreach (var num in @ViewBag.Numbers)
{
<br />
<a>@num</a>
}
@foreach (var item in @ViewBag.List)
{
<br />
<a>@item</a>
}
<!--ViewData-->
<br />
<text>@ViewData["User"]</text>
<br />
<text>@ViewData["Age"]</text>
<br />
@foreach (var dic in @ViewData["Dic"] as Dictionary<string, string>)
{
<br />
<a>@dic.Key</a>
<a>@dic.Value</a>
}
@foreach (var num in @ViewData["Numbers"] as int[])
{
<br />
<a>@num</a>
}
@foreach (var item in @ViewData["List"] as List<string>)
{
<br />
<a>@item</a>
}
</div>
看最后结果:
2.传递Model
ViewBag和ViewData传递的数据较少,在写WPF程序的时候经常会用到Model来传递数据。
后台代码(StudentModel类):
public class StudentModel
{
private string name;
private string stuNumber;
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public string StuNumber
{
get
{
return stuNumber;
}
set
{
stuNumber = value;
}
}
}
control里的方法:
public ActionResult ModelTest()
{
var students = new List<StudentModel>();
students.Add(new StudentModel() { Name="小王",StuNumber="001"});
students.Add(new StudentModel() { Name = "小张", StuNumber = "002" });
students.Add(new StudentModel() { Name = "小李", StuNumber = "003" });
return View(students);
}
前台的代码:
@using MVCTest001.Models;
@model IEnumerable<StudentModel>
<h2>ModelTest</h2>
@foreach(StudentModel stu in Model)
{
<h3>@stu.Name</h3>
<br />
<h3>@stu.StuNumber</h3>
<br />
}
这里用了using,是为了后面的代码实现智能感知。另外model需要说明它的数据类型。