1.ViewBag其实本质就是ViewData,只是多了层Dynamic控制。所以,使用何种方式完全取决于你个人的爱好。
2. TempData的使用:
同ViewData和ViewBag一样,TempData也可以用来向视图传递数据。只是ViewData和ViewBag的生命周期和View相同,只对当前View有用。而TempData则可以在不同的Action中进行传值,类似webform里的Seesion。
举例如下:
1.后台写法如下:
public ActionResult Index() { string[] fruits = new string[] { "Apple", "Banana", "Kiwi" }; ViewBag.Fruits = fruits; ViewData["Fruits"] = fruits; return View(); }
2.前端写法如下 :(注意会出现问题)
2.修改前端写法如下:
@{ ViewBag.Title = "Index"; } <h2>ViewBag vs ViewData</h2> 1. ViewBag写法如下: <ul> @foreach (string item in ViewBag.Fruits) { <li>@item</li> } </ul> 2. ViewData写法如下: <ul> @foreach (string item in (string[])ViewData["Fruits"]) { <li>@item</li> } </ul>
3.测试结果如下: