这里我以为Home控制器的demo1方法和demo1视图作为演示。
主要用三种方法
- 1 ViewDate
- 2 VIewBag
- 3 TempDate
下面进行一一介绍。
1、ViewDate
- 使用方式:通过键值对的形式传值,取值时通过键进行取值,所取的值是object类型,需要进行类型转化。
- 使用场景:向单个页面传值。
- 例如:
ViewData["myname"] = "张三";
ViewData["mysex"] = "男";
ViewData["myage"] = "30";
2、ViewBag
- 使用方式:通过ViewBag定义一个名称,通过名称类取值,取值不需要进行类型转化。
- 使用场景:向单个页面传值。
- 例如:
ViewBag.name= "李四";
ViewBag.sex = "女";
ViewBag.age = "20";
示例:
1.HomeController.cs控制器
public ActionResult demo1()
{
//ViewDate
ViewData["myname"] = "张三";
ViewData["mysex"] = "男";
ViewData["myage"] = "30";
//ViewBag
ViewBag.name= "李四";
ViewBag.sex = "女";
ViewBag.age = "20";
return View();
}
}
2.demo1.cshtml视图取值
@{
ViewBag.Title = "demo1";
}
@{
//ViewData取值
string myname = ViewData["myname"].ToString();
string mysex = ViewData["mysex"].ToString();
string myage = ViewData["myage"].ToString();
ViewBag取值
string name = ViewBag.name;
string sex = ViewBag.sex;
string age = ViewBag.age;
}
<h2>demo1</h2>
<h3>ViewData取值</h3>
<ul>
<li>@myname</li>
<li>@mysex</li>
<li>@myage</li>
</ul>
<hr />
<h3>ViewBag取值</h3>
<ul>
<li> @name</li>
<li>@sex</li>
<li>@age</li>
</ul>
3、TempDate
- 使用方式:和ViewDate类似,使用键值对的形式传值,通过键进行取值。
- 使用场景:向单个页面传值,也可以跨页传值,但是一旦TempDate被去过值就释放。