本文列举以下三种,主要传递一些简单的数据,集合类型数据最好用Model对象或者JSON串
- ViewBag
- ViewData
- TempData
ViewBag:
public ActionResult Index()
{
User user = Session["User"] as User;
if (user != null)
{
ViewBag.User = user;
}
return View();
}
javascript
var uid = "@ViewBag.User.Unit.Id";
var userId = "@ViewBag.User.Id";
var userName = "@ViewBag.User.Name";
var userPwd = "@ViewBag.User.Password";
页面直接引入:
<span>@ViewBag.User.Name</span>
ViewData:
public ActionResult Index()
{
ViewData["nameTest"] = "Hella World";
return View();
}
javascript
var name = "@ViewData["nameTest"]";
页面直接引入
<span>@ViewData["nameTest"]</span>
TempData
public ActionResult Index()
{
TempData["nameTest"] = "Hello World";
return View();
}
javascript
var name = "@TempData["nameTest"]";
页面直接引入
<span>@TempData["nameTest"]</span>
ViewData是字典型的(Dictionary),ViewBag不再是字典的键值对结构,而是dynamic(动态)型,会在程序运行的时候动态解析。ViewData为object型,而ViewBag为dynamic型。dynamic型与object型的区别是在使用时它会自动根据数据类型转换,而object型则需要我们自己去强行转换。
ViewBag其实就是ViewData,只是多了一层Dynamic控制,可以说它是另一种访问ViewData的方式。理论上ViewBag要比ViewData慢一点点,但是几乎可以忽略,所以使用何种方式完全取决于个人的爱好。
TempData的使用同ViewData和ViewBag一样,TempData也可以用来向视图传递数据,只是ViewData和ViewBag的生命周期和View相同,它们只对当前的View有用。TempData则可以在不同的Action中进行传递,类似Webform里的Session。有一点需要注意,TempData的值在取了一次后会自动删除。TempData用来在一次请求中同时执行多个Action方法之间共享数据。
标签:ViewData,nameTest,C#,TempData,ViewBag,MVC,User,var,传值 From: https://blog.51cto.com/u_14452299/6010717